【发布时间】:2011-08-10 10:03:43
【问题描述】:
非常简单的问题,但我似乎无法弄清楚如何做到这一点,即使在搜索了 Rails 路由指南之后。
假设主题有嵌套的资源帖子。
主题的帖子都列在 Posts#index (/topics/:topic_id/messages) 中。 Topics#show 没有任何用途。我希望在请求 /topics/:topic_id 时检索 Posts#index,而不必在主题控制器中粘贴重定向。
谢谢!
更新
我能够得到想要的结果:
routes.rb
match 'forums/:forum_id' => 'topics#index', :as => 'forum_topics', :via => :get
match 'topics/:topic_id' => 'messages#index', :as => 'topic_messages', :via => :get
resources :forums, :shallow => true, :except => :show do
resources :topics, :shallow => true, :except => :show do
resources :messages
end
end
但是,我不确定这是否是最好的方法。
更新 2 我上面的方法打破了其他 CRUD 方法(如#create)。仍在寻找将 /messages 排除在 url 之外的解决方案。
【问题讨论】:
-
您的路线文件看起来如何?
-
查看我的更新。我解决了这个问题,但仍然想知道是否有更好的解决方案。
标签: ruby-on-rails routing