是否可以动态更改使用控制器的路径? Ryan Bates展示了如何更改view_paths:http://railscasts.com/episodes/269-template-inheritance
我正在制作CMS,用户可以在其中创建网站并输入自己的子网域。如果没有子域名,我希望“/”指向“public#welcome”,但如果有子域名,我希望它指向“sites / public#welcome”。
如果有任何不同,我正在使用Rails 3.1。
答案 0 :(得分:1)
你应该能够使用约束来解决这种情况,如果我没有弄错的话(我可能,因为我还没有真正尝试过以下):
constraints(:subdomain => /.+/) do
root :to => 'sites/public#welcome'
end
root :to => 'public#welcome'
答案 1 :(得分:1)
我明白了:
constraints(:subdomain => /.+/) do
scope :module => "sites" do
root :to => 'public#welcome'
end
end
root :to => 'public#welcome'
现在,当用户访问“/”时,如果子域存在,则将使用Sites :: PublicController,但如果没有子域退出,则只使用PublicController。添加scope :module => "sites" do...end
会使我的路由文件变得简单易懂。