Ruby on rails 如何通过控制器附加URL参数?
在我的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进行签名,那么我将进入一个循环 谢谢你的指点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进行签名
那么解决办法就简单了。您不需要重定向,只需要路由的可选参数
您需要旧的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