我有路线规则:
match '*path' => redirect("/some_scope/%{path}")
但是我只有在当前路径不是从/some_scope/
答案 0 :(得分:1)
http://guides.rubyonrails.org/routing.html#dynamic-segments
How do I use regular expressions in a Rails route to make a redirection?
这两个应该能够帮助您解决问题。如果你给我们真正的代码会很好,所以我可以确切地确定你要做什么,因为在这种情况下你似乎甚至不需要正则表达式。
如果您正在尝试执行我认为您正在尝试执行的操作...如果某个范围尚未包含该范围,则会将范围应用于路径,您最好执行{{1}在你的before_filters
中。那就是:
ApplicationController
答案 1 :(得分:0)
这是我的解决方案:
DEFAULT_PATH_SCOPE = "/my_scope"
default_scope_constraint = ->(request) do
!request.path.starts_with?(DEFAULT_PATH_SCOPE)
end
constraints(default_scope_constraint) do
match '*path' => redirect("#{DEFAULT_PATH_SCOPE}/%{path}")
end