强制路由退出Rails 3.2中的子域

时间:2012-05-15 05:11:29

标签: ruby-on-rails routes

我正在努力退出子域,回到Rails 3.2中的根域。

说我有一个带有仪表板的博客。每个用户都有username.blog.com的子域名。每个用户还有blog.com/dashboard的信息中心。

如果用户手动输入username.blog.com/dashboard,我希望将其重定向到blog.com/dashboard

我尝试在我的路线中使用subdomain => false,但似乎毫无用处。我也在域范围下尝试了一个匹配器,但这也没有用。任何帮助将不胜感激!

相关的路线.rb如下。

resource :dashboard, :controller => 'dashboard', :subdomain => false
scope '/', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' } do
    get '/' => 'feed#show'
  end

root :to => 'dashboard#show', :subdomain => false

1 个答案:

答案 0 :(得分:1)

我会将这种逻辑保留在路由之外。 我会在视图/控制器中使用dashboard_url而不是dashboard_path。 我会在我的ApplicationController

中添加这样的东西
def dashboard_url(options={})
  options[:subdomain] = false
  super(options)
end