ruby on rails:没有使用edit_path的路由?

时间:2013-04-30 04:25:42

标签: ruby-on-rails ruby ruby-on-rails-3 controller

我从rails generate获得了两个不同的控制器,每个控制器都有索引,编辑,更新,销毁等......

现在我正试图将这两个控制器(列表和想法)联系起来。我在我的列表中有这个循环 - >显示页面

<% @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 个答案:

答案 0 :(得分:1)

您的Idea实例没有ID(:id=>#<Idea id: nil...),因此路由器无法为其生成路由。在尝试为他们生成您的创意之前,请确保您的创意已保存。

此外,与问题没有直接关系,但您可以使用link_to "Edit", [:edit, idea]根据idea类来推断路线。

答案 1 :(得分:0)

在使用RESTful路由时检查您的routes.rb文件

如果没有帮助,请在此处粘贴路线代码