Rails根据请求重定向

时间:2014-11-22 17:18:02

标签: routing ruby-on-rails-3.2

尝试接受域请求并将其路由到控制器的索引操作。

域名以@site.host的形式存储在数据库中。通过@ site.controller将站点指定给控制器 应用程序控制器提取主机

@site ||= if match = request.host.match(/.*?([^.]+\.[^.]+\.[^.]+$)/)
  domain = match[1]
  Site.find_by_host(domain)
end || Site.find(:first)

但是以下是失败的:

if request.url.split('?').first == ("https://" + @site.host)
  redirect_to :controller => @site.controller, :action => 'index'
end

1 个答案:

答案 0 :(得分:0)

解决方案是通过数据库生成的会话值,然后将其与请求进行比较并相应地重定向

r_host = session[:host] + "/"
r_host_n = session[:host]
if request.url.split("//").last == (r_host || r_host_n)
  redirect_to :controller => session[:controller], :action => 'index'
end