rails应用程序中的路由错误

时间:2011-04-11 22:30:03

标签: ruby-on-rails routing

所以我在我的rails app中收到了这个错误:

  

没有路线匹配{:action =>“edit”,   :控制器=> “中各方”}

在我的routes.rb文件中,我有这个集合:

resources :parties

在目录views / parties / show.html.erb下,我的show.html.erb视图包含以下行:

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

这项工作。但是,在目录views / users / 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吗?

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

您需要将资源传递到路径

尝试

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