2016-08-21 79 views
0

我想弄清楚嵌套的路线。Rails 4 - 如何添加一个嵌套的资源编辑链接

我有称为项目和潜在用途的模型。该协会是:

项目

has_many :potential_uses 
     accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true 

可能的用途

belongs_to :project 
belongs_to :user 

在我的项目展示,我通过每一个潜在用途试图循环。

<% @project.potential_uses.each do |pu| %> 
     <div class="row"> 
      <p><%= pu.comment %></p> 
      <strong><%= pu.user.formal_name %></strong> 
       <%= link_to 'Edit', edit_project_potential_use_path(pu) %> 

      <p style= 'border-bottom: solid; border-bottom-width: 1px'></p> 

     </div>  
    <% end %> 

当我尝试这个编辑链接,我得到一个错误,指出:

No route matches {:action=>"edit", :controller=>"potential_uses", :id=>nil, :project_id=>#<PotentialUse id: 14, comment: "asdf", project_id: 17, created_at: "2016-08-19 01:36:49", updated_at: "2016-08-19 01:36:49", user_id: 1, private_comment: false>} missing required keys: [:id] 

我试过几个不同版本的编辑联系。

<%= link_to 'Edit', edit_project_potential_use_path(potential_use) %> 


<%= link_to 'Edit', edit_project_potential_use_path(project.potential_use) %> 

我找不到工作的方式。

我耙路线,显示了本作的编辑操作:

edit_project_potential_use GET  /projects/:project_id/potential_uses/:id/edit(.:format)  potential_uses#edit 

为了我的眼睛,这看起来像我要问,在编辑链接资源复数引用(虽然它没有任何意义我),像这样:

<%= link_to 'Edit', edit_projects_potential_uses_path(pu) %> 

这一提法给出了这样的错误:

undefined method `edit_projects_potential_uses_path' for #<#<Class:0x007fd4b7431b18>:0x007fd4b7430678> 
Did you mean? edit_project_potential_use_path 
       edit_project_potential_use_url 

我能不发如何获取这些信息并用它来编辑编辑链接。

任何人都可以看到我做错了什么吗?

回答

1

你必须指定一个父太:

edit_project_potential_use_path(@project, pu) 
1

根据您的耙路线,我认为它的路径应该是edit_project_potential_use_path(@project, pu)

<%= link_to 'Edit', edit_project_potential_use_path(@project, pu) %>