undefined method `*' for nil:NilClass Extracted source (around line #5): 2: 3: <%= render :partial => 'shopping_cart_item', :collection => @shopping_cart.shopping_cart_items %> 4: 5: SubTotal:<%= number_to_currency @shopping_cart.subtotal %> 6: Taxes:<%= number_to_currency @shopping_cart.taxes %> 7: Total:<%= number_to_currency @shopping_cart.total %>
字段似乎在gem源中定义。
<h1>Shopping Cart</h1>
<%= render :partial => 'shopping_cart_item', :collection => @shopping_cart.shopping_cart_items %>
<div><b>SubTotal:</b><%= number_to_currency @shopping_cart.subtotal %></div>
<div><b>Taxes:</b><%= number_to_currency @shopping_cart.taxes %></div>
<div><b>Total:</b><%= number_to_currency @shopping_cart.total %></div>
class ShoppingCart < ActiveRecord::Base
acts_as_shopping_cart
def tax_pct
8.25
end
def taxes
(subtotal - 10) * tax_pct
end
end
应用程序跟踪
应用程序/视图/ shopping_carts / show.html.erb:5:在 `_app_views_shopping_carts_show_html_erb__2338506009803118188_70153042369260'
shopping_carts.controller
class ShoppingCartsController < ApplicationController
before_filter :extract_shopping_cart
def create
@product = Product.find(params[:product_id])
@shopping_cart.add(@product, @product.price)
redirect_to shopping_cart_path
end
def show
end
private
def extract_shopping_cart
shopping_cart_id = session[:shopping_cart_id]
@shopping_cart = session[:shopping_cart_id] ? ShoppingCart.find(shopping_cart_id) : ShoppingCart.create
session[:shopping_cart_id] = @shopping_cart.id
end
end
我的回购
答案 0 :(得分:2)
只有当您将未定价的商品添加到购物车时才会出现此问题。
所以你需要确保所有产品都有价格,可能使用验证,也许使用before_save功能,但要确保所有产品都有价格,这个问题就会消失。
ps 在测试之前不要忘记从数据库中清除任何未定价的产品