Ruby on rails Rails未定义方法错误突然出现

Ruby on rails Rails未定义方法错误突然出现,ruby-on-rails,Ruby On Rails,我正在使用购物车制作一个应用程序,购物车已经运行了数周,直到今天,我随机发现以下错误: undefined method `title' for nil:NilClass Extracted source (around line #20): <%= link_to product.title, product %> <p><%= number_to_currency(product.price, :un

我正在使用购物车制作一个应用程序,购物车已经运行了数周,直到今天,我随机发现以下错误:

undefined method `title' for nil:NilClass

Extracted source (around line #20):

            <%= link_to product.title, product %>

                <p><%= number_to_currency(product.price, :unit => '$') %></p>
                <p>Quantity: <%= quantity %></p>

您需要避免在视图中执行查询,但是,如果您想保留该
产品。按\u id查找\u
,则可以在那里添加一个guard类:

<% @cart.each do | id, quantity | %>
 <% product = Product.find_by_id(id)  %>
  <% if product %>
    <li>

        <%= link_to product.title, product %>

        <p><%= number_to_currency(product.price, :unit => '$') %></p>
        <p>Quantity: <%= quantity %></p>

    </li>
    <% total += quantity * product.price %>
   <% end %>
<% end %>

  • “$”)%>

    数量:

  • <div class="shoping-cart">
    <h1>Your Cart</h1>
    
    <% if  @cart.empty? %>
        <p>Your cart is currently empty</p>
    <% else %>
        <%= link_to 'Empty Cart', cart_clear_path %>
    <% end %>
    
    <br><br><br>
    
    <% total = 0 %>
    <div class="list">
    <ul>
    <% @cart.each do | id, quantity | %>
        <% product = Product.find_by_id(id)  %>
    
            <li>
    
                <%= link_to product.title, product %>
    
                <p><%= number_to_currency(product.price, :unit => '$') %></p>
                <p>Quantity: <%= quantity %></p>
    
            </li>
            <% total += quantity * product.price %>
    
    <% end %>
    
    <br><br><br>
    
    
    <p><p><%= number_to_currency(total, :unit => '$') %></p></p>
    </ul>
    </div>
    <% link_to 'pay now',  new_charge_path %>
    
    </div>
    
     get '/cart' => 'cart#index'
      get '/cart/clear' => 'cart#clearCart'
      get '/cart/:id' => 'cart#add'
    
    <% @cart.each do | id, quantity | %>
     <% product = Product.find_by_id(id)  %>
      <% if product %>
        <li>
    
            <%= link_to product.title, product %>
    
            <p><%= number_to_currency(product.price, :unit => '$') %></p>
            <p>Quantity: <%= quantity %></p>
    
        </li>
        <% total += quantity * product.price %>
       <% end %>
    <% end %>