0

rails generate から取得した 2 つの異なるコントローラーがあり、各コントローラーにはインデックス、編集、更新、破棄などがあります...

今、私はこれら 2 つのコントローラー (リストとアイデア) を関連付けようとしています。リストにこのループがあります->ページを表示

<% @list.ideas.each do |idea| %>
  <div>
    <div class="list_idea_desc"><%= idea.description %></div>
    <div><%= link_to 'Show', idea %></div>
    <div><%= link_to 'Edit', edit_idea_path(idea) %></div>
    <div><%= link_to 'Destroy', idea, method: :delete, data: { confirm: 'Are you sure?' } %></div>
  </div>
<% end %>

を機能させようとしてedit_idea_pathいますが、エラーが発生します

No route matches {:action=>"edit", :controller=>"ideas", 
:id=>#<Idea id: nil, name: nil, description: nil, picture: nil, 
created_at: nil, updated_at: nil, list_id: 2>}

2つの異なるコントローラーをどのように使用できるか考えていますか? これで十分な情報が得られますか?

ありがとう

4

2 に答える 2

1

Ideaインスタンスに ID ( :id=>#<Idea id: nil...) がないため、ルーターはインスタンスのルートを生成できません。アイデアを作成する前に、アイデアが保存されていることを確認してください。

また、問題とは直接関係ありませんがlink_to "Edit", [:edit, idea]、 のクラスに基づいてルートを推測するために使用できますidea

于 2013-04-30T04:31:43.807 に答える