Rails路由匹配regexp

时间:2013-05-25 11:55:07

标签: ruby-on-rails

我有路线规则:

match '*path' => redirect("/some_scope/%{path}")

但是我只有在当前路径不是从/some_scope/

开始时才需要应用它

2 个答案:

答案 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