【发布时间】:2012-05-15 20:39:46
【问题描述】:
我已经在 Rails 中的子域上挖掘了几天,但还没有找到一个很好的解释......
我有一个集成了博客的 Rails 应用程序,我想将该博客放在子域中。 IE。 blog.myapp.com.
现在,我希望用户能够在博客中查看帖子,blog.myapp.com/posts/123。但是,如果用户要单击站点上的任何其他资源,例如videos,我希望它们被重定向回根目录,即。 www.myapp.com/videos/123。我不希望blog.myapp.com/videos... 导致路由错误,我只是希望它重定向。
基本上,我正在寻找设置子域并指定某些控制器使用该子域而其他控制器不使用的最简单方法。理想情况下,我什至希望控制器层以两种方式处理重定向,以便在视图中我可以使用post_path(123) 和video_path(123) 之类的帮助程序来回链接到事物,并且子域将自动使用或不使用基于在哪个控制器上提供视图。
我尝试将所有控制器放在一个约束块中,即:
constraints :subdomain => 'www' do
resources :sessions
resources :users
resources :videos
root :to => 'home#show'
end
constraints :subdomain => 'nexturb' do
resources :posts
root :to => "posts#index"
end
root :to => 'home#show'
但是这似乎效果不佳,尤其是在链接之间的重定向以非常一致的方式工作时遇到了麻烦。
我很确定其他人过去一定遇到过这个问题,但我似乎无法找到一个很好的书面例子来说明这种情况。处理这个问题的最佳方法是什么?
【问题讨论】:
标签: ruby-on-rails routing subdomain