我有关于rails 3的路由问题,并设置了条件:根路径。
现在,我的route.rb有以下内容:
root :to => "topics#index"
这很棒,但是只有当用户在我的网站上使用他们特定的子域(basecamp样式)时才会这样。如果他们去www.myapp.com或myapp.com,这应该是不一样的:root。我很想知道这是否完全可以设置,这就像是......
if default_subdomain(www, "")
root :to => "promos#index"
else
root :to => "topics#index
end
我知道在routes.rb中不允许这样做,但是会做同样合乎逻辑的事情。有没有人对此有任何经验,或者我可以阅读的任何文档/博客试图设置这样的东西。
由于
Per chuck在下面的帮助(非常感谢),这最终成为了我的工作代码:
constraints(:subdomain => "www") do
root :to => "promos#index"
end
root :to => "topics#index"
答案 0 :(得分:10)
您可以使用:requirements
标记来完成此操作。
root :to => "promos#index", :requirements => { :subdomain => "www" }
root :to => "topics#index"
我认为这会奏效。我从未遇到过子域/缺少子域的问题。
修改:执行一些阅读后,Rails 3会使用:constraints
代替。