您遇到问题是因为您没有注意到多元化。当你定义一个单一的路径时,Rails不会将它视为一个集合,你可以用id
来引用每个成员。你不是想为这两个群体和文章复数resources
:
resources :groups do
resources :articles
end
生成以下路线:
group_articles GET /groups/:group_id/articles(.:format) {:action=>"index", :controller=>"articles"}
POST /groups/:group_id/articles(.:format) {:action=>"create", :controller=>"articles"}
new_group_article GET /groups/:group_id/articles/new(.:format) {:action=>"new", :controller=>"articles"}
edit_group_article GET /groups/:group_id/articles/:id/edit(.:format) {:action=>"edit", :controller=>"articles"}
group_article GET /groups/:group_id/articles/:id(.:format) {:action=>"show", :controller=>"articles"}
PUT /groups/:group_id/articles/:id(.:format) {:action=>"update", :controller=>"articles"}
DELETE /groups/:group_id/articles/:id(.:format) {:action=>"destroy", :controller=>"articles"}
groups GET /groups(.:format) {:action=>"index", :controller=>"groups"}
POST /groups(.:format) {:action=>"create", :controller=>"groups"}
new_group GET /groups/new(.:format) {:action=>"new", :controller=>"groups"}
edit_group GET /groups/:id/edit(.:format) {:action=>"edit", :controller=>"groups"}
group GET /groups/:id(.:format) {:action=>"show", :controller=>"groups"}
PUT /groups/:id(.:format) {:action=>"update", :controller=>"groups"}
DELETE /groups/:id(.:format) {:action=>"destroy", :controller=>"groups"}
如果你想离开关groups
和articles
段你可以通过:path => ''
到每个resources
的定义,但是您将不得不谨慎行事,因为对http://example.com/1/2的任何请求都将映射到群组下的文章,并且不会对最终用户和漫游器产生影响。
哦,对不起,我打算使用'资源'。但':path =>'''选项有效 – ShiningRay 2011-05-18 07:20:13