在索引操作中显示产品

时间:2014-02-10 18:43:50

标签: ruby-on-rails

我正在尝试使用以下操作在ProductsController中显示产品:

def index
  @products = Products.find(params[:id])
end

我的index.html.erb:

<% @products.each do |product| %>
    <p>
        <b>Product:</b>
        <%= product.name %>
    </p>
<% end %>

但是我收到以下错误:

ActiveRecord::RecordNotFound (Couldn't find Products without an ID)

我对铁杆有点新意,所以我不确定我做错了什么。

1 个答案:

答案 0 :(得分:1)

您应该更加小心使用您所使用的语言来描述您要做的事情。对它的疏松和草率会对其他人如何理解你以及你如何看待你正在做的事情产生影响。

也就是说,您正在使用index操作,该操作用于列出或提供索引记录,但之后您尝试获取单个产品({ {1}})。这些事情是不一致的。即使您的变量名也与您正在加载的数据不一致。

find(id)

将来,您应该仔细阅读并阅读您收到的错误消息(这一个直接告诉您,params没有此动作的ID,让您了解正在发生的事情)。