Ruby on rails 如何通过控制器附加URL参数?

Ruby on rails 如何通过控制器附加URL参数?,ruby-on-rails,applicationcontroller,Ruby On Rails,Applicationcontroller,在我的Rails应用程序中,我想将我的用户转发到他们的个人登录页面,该页面存储在cookie:user\u子域中。因此,当用户访问www.app.com/sign_-in时,应自动将其转发到www.app.com/sign_-in/mycompany 如何做到这一点 我想保留我的sign_in_path helper方法,因为它遍布我的应用程序 如果我只是使用redirect\u在\u path:name=>cookies[:user\u subdomain]中对新操作进行重定向以对\u进行签名

在我的Rails应用程序中,我想将我的用户转发到他们的个人登录页面,该页面存储在cookie:user\u子域中。因此,当用户访问www.app.com/sign_-in时,应自动将其转发到www.app.com/sign_-in/mycompany

如何做到这一点

我想保留我的sign_in_path helper方法,因为它遍布我的应用程序

如果我只是使用redirect\u在\u path:name=>cookies[:user\u subdomain]中对新操作进行重定向以对\u进行签名,那么我将进入一个循环

谢谢你的指点


那么解决办法就简单了。您不需要重定向,只需要路由的可选参数


您需要旧的www.app.com/sign_in还是新的登录方式?@Nermin:新的登录方式。
# routes.rb:

get 'sign_in', :to => 'sessions#new'
 # sessions_controller.rb:

class SessionsController < ApplicationController

  def new
    params[:name] ||= cookies[:user_subdomain]
  end

  ...

end
# routes.rb:

get 'sign_in(/:company_name)', :to => 'sessions#new'
# This will allow
# /sign_in
# and
# /sign_in/mycompany
# Both will lead to same action and you can keep your helper



# sessions_controller.rb:

class SessionsController < ApplicationController

  def new
    params[:company_name] ||= cookies[:user_subdomain]
    # You logic here
  end

...

end