我有一个简单的join=yes
,可以通过GET传递给我的任何应用网址。检测到时,它只是重定向到特定的JoinsController
控制器。否则它只是保持常规流量。
我的问题是如何匹配join=yes
等特定模式才能将其重定向到JoinsController
?
答案 0 :(得分:3)
尝试在routes.rb
中添加某种约束。 e.g:
constraints(:join => "true") do
match '/*path', :to => redirect(url)
end
中约束的更多信息
答案 1 :(得分:1)
由于您希望重定向发生在所有其他控制器上,您可以通过多种方式完成。我这样做的方式是这样的:
<强> application_controller.rb 强>
def ApplicationController<ActionController::Base
before_filter :needs_join_controller
def needs_join
redirect_to your_controller_action_path and return if params[:join] == "yes"
end
end
然后你的连接控制器需要在过滤之前跳过这个以避免多次重定向
<强> joins_controller.rb 强>
def JoinsController < ApplicationController
skip_before_filter :needs_join_controller
end