Rails嵌套资源错误

时间:2012-08-25 17:57:46

标签: ruby-on-rails

我有这种嵌套的资源

  resources :products do
     resources :senders
  end 

在我的产品/索引视图中,我有这个

...
..
.
<td><%= link_to 'Show Email Addresses', product_senders_path(product) %> </td>
.
..
...

似乎正在工作,它将我重定向到该产品的发件人。现在出于一些奇怪的原因,我得到了这个:

 NameError in Senders#index

undefined local variable or method `sender_path' for #<#<Class:0x00000003cb1f58>:0x00000003b46e48>

Extracted source (around line #18):

15:     <td><%= sender.product_id %></td>
16:     <td><%= sender.name %></td>
17:     <td><%= sender.email %></td>
18:     <td><%= link_to 'Show', sender %></td>
19:     <td><%= link_to 'Edit', edit_sender_path(sender) %></td>
20:     <td><%= link_to 'Destroy', sender, confirm: 'Are you sure?', method: :delete %></td>
21:   </tr>

这是我的发件人/索引文件:

<h1>Listing senders</h1>

<table>
  <tr>
    <th>Application</th>
    <th>Name</th>
    <th>Email</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @senders.each do |sender| %>
  <tr>
    <td><%= sender.product_id %></td>
    <td><%= sender.name %></td>
    <td><%= sender.email %></td>
    <td><%= link_to 'Show', sender %></td>
    <td><%= link_to 'Edit', edit_sender_path(sender) %></td>
    <td><%= link_to 'Destroy', sender, confirm: 'Are you sure?', method: :delete %></td>
  </tr>
<% end %>
</table>

<br />

为什么我收到此错误?在它工作正常之前

1 个答案:

答案 0 :(得分:0)

由于只有发件人的嵌套路由,因此没有edit_sender_path(sender)个助手,只有edit_product_sender_path(product, sender)

您可以通过执行rake routes

查看所有应用程序路径助手的列表