2016-08-21 80 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) %>