2011-04-11 175 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) %>