1. ホーム
  2. html

[解決済み] 必要なキーに一致するルートがありません。[:id]

2022-02-05 15:44:54

質問

私はRailsの初心者で、同じような問題があるようですが、私の問題は解決できません。

私のルート

resources :users do
    resources :items
end

私のモデル

class Item < ActiveRecord::Base
  belongs_to :user
end

class User < ActiveRecord::Base
   has_many :items
end

HTMLです。

<% @items.each do |item| %>
<tr>
  <td><%= item.id %></td>
  <td><%= item.code %></td>
  <td><%= item.name %></td>
  <td><%= item.quantity %></td>
  <td><%= link_to "Edit", edit_user_item_path(item) %></td>  <---- error

そして、同じエラーが発生しています。

No route matches {:action=>"edit", :controller=>"items", 
:user_id=>#<Item id: 1, user_id: 1, code: "123", name: "test", 
quantity: 12, , created_at: "2014-02-11 15:45:30", updated_at:
"2014-02-11 15:45:30">, :id=>nil, :format=>nil} missing required keys: [:id]

解決方法は?

ネストされたルートなので、ユーザーも含める必要があります。だから、次のようなものです。

<td><%= link_to "Edit", edit_user_item_path(@user, item) %></td>