youtube教程中的“未定义的方法`标题'为nil:NilClass”

时间:2015-09-02 20:12:52

标签: ruby-on-rails

所以我看了很多选项来实现会话购物车之后,朋友提到它并在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

的链接

0 个答案:

没有答案