我正在爲我的應用程序開發一個留言板,並且它具有使所有工作都正常工作的典型三種資源:論壇,主題和帖子。該路線被定義爲這樣:使用多個資源創建留言板時遇到問題
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