0

我有一个join=yes可以通过 GET 传递给我的任何应用程序 url 的简单方法。当检测到它时,它只是重定向到特定的JoinsController控制器。否则它只会保持正常流量。

我的问题是如何匹配特定模式join=yes,以便将其重定向到JoinsController

4

2 回答 2

3

尝试在你的routes.rb. 例如:

constraints(:join => "true") do
  match '/*path', :to => redirect(url)
end

更多关于 Rails API 中的约束- ActionDispatch::Routing::Mapper::Scoping

于 2012-10-25T20:32:19.350 回答
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
于 2012-10-25T20:33:27.800 回答