我正在为我的应用程序开发一个留言板,并且它具有使所有工作都正常工作的典型三种资源:论坛,主题和帖子。该路线被定义为这样:使用多个资源创建留言板时遇到问题
resources :forums do
resources :topics do
resources :posts
end
end
主题已定义为嵌套资源职位,因为当你创建一个新的话题,将创建一个新的岗位,开始线头脱落。这样一切运作良好。但是我被困在主题的'显示'页面上。在该页面上,与任何留言板模型一样,在显示所有帖子后,底部会有一个表单添加新帖子/回复。一旦帖子的创建动作被触发,它将重定向回主题等。实现该形式是我绊倒了。
通常我会觉得这样的事情...
<%= form_for([@topic, @post]) do |f| %>
...
<% end %>
...只有页面返回“未定义的方法`topic_posts_path”错误。这并不奇怪,因为查看rake路由会将此作为Posts的创建操作返回。
forum_topic_posts POST /forums/:forum_id/topics/:topic_id/posts(.:format) {:controller=>"posts", :action=>"create"}
想我会尝试<%=的form_for([@论坛,@topic,@post])做| F | %>在form_for中,但只是给我返回了同样的错误。我需要给它实际的路径,我给了<%= form_for:url => forum_topic_posts_url do | f | %>一个尝试,但它并不关心这一点。
谷歌搜索后,大多数论坛教程已过时或停止在主题页面添加新帖子表单,只显示我已经制定的几乎所有的东西。
我能够出现的唯一的其他事情表明不会将资源嵌套到三层或更多层,但是没有达到“为什么”,更不用说提供一个合适的替代方案。此外,上面的路径路径似乎是这种行为最合乎逻辑的路径。
那么我该如何完成在这种设置中的主题显示页面上使Post表单工作?
(facepalm)哦,男人,我不能相信我忽略了这一点。你是对的。非常感谢。 – Shannon 2011-05-01 18:15:42