所以我在我的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吗?
答案 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) %>