2011-04-11 240 views
0

所以我在我的Rails應用程序收到此錯誤:路由錯誤

沒有路由匹配{:動作=> 「編輯」, :控制器=> 「當事人」}

在我的routes.rb文件,我有這一套:

resources :parties 

目錄下的意見/方/ show.html.erb我對show.html.erb視圖包含這一行:

<%= link_to "Edit Party Details", edit_party_path %><br /> 

此作品。然而,目錄的意見/用戶/ show.html.erb下,它包含此行:

<%= link_to "edit parties", :controller => 'users', :action => 'edit_parties' %> 

的edit_parties.html.erb我有一個循環,打印出用戶的當事人和編輯它們的鏈接裏面。該鏈接看起來像這樣:

<li><h2><%= link_to party.title, edit_party_path %></h2><%= party.description %></li> 

這是發生錯誤的地方。爲什麼edit_party_path在這裏不起作用,但它在上面工作?是否因爲edit_parties.html.erb中的edit_party_path沒有可供抓取的ID?

回答

1

我認爲你的診斷是正確的。

試試這個(注意參數edit_party_path):

<li><h2><%= link_to party.title, edit_party_path(party.id) %></h2><%= party.description %></li> 

參見http://guides.rubyonrails.org/routing.html#paths-and-urls

看來,在你的show.html.erb,edit_party_path是能夠以某種方式推斷ID。

+0

謝謝,我不知道你可以傳遞的東西到像這條道路:) – Mason 2011-04-11 23:00:05

0

您需要將資源傳遞給路徑

嘗試

<%= link_to "Edit Party Details", edit_party_path(party) %>