迭代实例变量打印不需要的东西

时间:2013-07-30 18:57:09

标签: ruby-on-rails instance-variables

我的问题详情在这里

  

undefined method `items' for nil:NilClass in @cart.items.each

我添加的额外内容是应用程序控制器中的购物车方法,并使 helper_method 使其在整个应用程序的所有视图中都可用

helper_method :cart

def cart
    @cart = Cart.find(session[:cart_id])
  end

在我看来,我会像这样迭代@cart变量

    <%= cart.items.each do |item| %>
    <tr>
        <td><%= item.product.title%></td>
        <td><%= item.product.price%></td>
    </tr>
    <% end %>

它显示了这个

enter image description here

为什么打印上层的东西?我知道这是 item.product.title 的输出和所有这些变量。如何删除?

1 个答案:

答案 0 :(得分:1)

  

为什么打印上层的东西?

因为你告诉它。当您使用<%= %>包围ruby代码时,您告诉它呈现所附代码的结果。由于你将它放在each块周围,它显示的是each的结果,这是它被调用的集合。

要删除它,只需使用<% %>即可。