所以我看了很多选项来实现会话购物车之后,朋友提到它并在youtube上发现了一个视频。几分钟后代码中出现了undefined method "title" for nil:NilClass
错误而且我不能似乎弄清楚它为什么会出现以及导师如何解决它。
这是视图代码:
<% @cart.each do |id, quantity| %>
<% product = Product.find_by_id(id) %>
<%= link_to product.title, '#' %>
<% end %>
这是控制器代码:
def index
if session[:cart]
@cart = session[:cart]
else
@cart = {}
end
end
def add
id = params[:id]
if session[:cart]
cart = session[:cart]
else
session[:cart] = {}
cart = session[:cart]
end
if cart[id]
cart[id] = cart[id] + 1
else
cart[id] = 1
end
redirect_to :index
end
def empty_cart
session[:cart] = nil
redirect_to :index
end
现在,导师能够通过在他的视图代码顶部添加<%= link_to "Empty Cart", cart_clear_path %>
来解决(无需解释-.-)这个noMethodError。现在编程是逻辑而不是魔术,所以我很好奇它是如何工作的,但我似乎无法提出解释。欢迎每一个帮助
注意:这是指向Youtube Tutorial
的链接