我的问题详情在这里
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 %>
它显示了这个
为什么打印上层的东西?我知道这是 item.product.title 的输出和所有这些变量。如何删除?
答案 0 :(得分:1)
为什么打印上层的东西?
因为你告诉它。当您使用<%= %>
包围ruby代码时,您告诉它呈现所附代码的结果。由于你将它放在each
块周围,它显示的是each
的结果,这是它被调用的集合。
要删除它,只需使用<% %>
即可。