我有一个join=yes
可以通过 GET 传递给我的任何应用程序 url 的简单方法。当检测到它时,它只是重定向到特定的JoinsController
控制器。否则它只会保持正常流量。
我的问题是如何匹配特定模式join=yes
,以便将其重定向到JoinsController
?
我有一个join=yes
可以通过 GET 传递给我的任何应用程序 url 的简单方法。当检测到它时,它只是重定向到特定的JoinsController
控制器。否则它只会保持正常流量。
我的问题是如何匹配特定模式join=yes
,以便将其重定向到JoinsController
?
尝试在你的routes.rb
. 例如:
constraints(:join => "true") do
match '/*path', :to => redirect(url)
end
更多关于 Rails API 中的约束- ActionDispatch::Routing::Mapper::Scoping
由于您希望重定向发生在所有其他控制器上,您可以通过多种方式进行。我会这样做的方式是这样的:
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