2014-09-04 76 views
0

我在Posts和Postables之間有一個多態關聯,現在項目是我唯一的Postables。在我的路線,我有:Rails中的多態路由4.1.4

resources :projects do 
    ... 

    member do 
    resources :posts 
    end 
end 

我知道了如何獲取從參數正確的ID和我所有的控制器規格的通就好了,但是當我嘗試寫在我的意見的鏈接,他們不」工作。運行rake routes,我看到有點奇怪:

... 

post SHOW  /projects/:id/posts/:id(.:format) posts#edit 

... 

等等等等。如果我沒有弄錯,路徑應該是'new_project_post',第一個參數應該是:project_id

現在,在我的項目show視圖中,我有該特定項目的帖子索引。但鏈接不起作用。讓我們假設我有2個ID的項目,以及一職,負責該項目與1

如果我嘗試link_to 'Edit', edit_post_path(@project, post)一個ID,鏈接出來爲.../projects/1/posts/1/edit,這樣既:id小號得到這個職位的id。如果我交換post@project,則兩個:id都將是該項目的ID。

如果我嘗試將它們作爲數組傳遞給link_to 'Edit', post_path([post, @project]),則生成的鏈接將爲.../projects/1%2F2/posts/1%2F2/edit%2F是一個URL編碼的斜槓字符,所以我不確定Rails在這裏試圖做什麼。

如果我嘗試使用polymorphic_path([@project, post])我的鏈接,它是所有吐不存在路徑:undefined method 'project_post_path'

我試過的參數等幾個組合都沒有成功。所以如果任何人都能指出我的方向,我會非常感激。

+0

因爲我是個白癡,忘了在將帖子移到自己的控制器時刪除成員塊。這解決了它,所以謝謝你。發佈後,我會將其標記爲答案。上帝,我需要更多的睡眠。 – 9nonnatus 2014-09-04 16:31:42

回答

1

在Rails的嵌套資源的適當的語法是:

resources :projects do 
    resources :posts 
end 

member塊,你只能聲明額外的行動與項目實例工作。