在学习<应用Rails进行敏捷Web开发>遇到问题

在学习第八章 迭代C2 :创建购物车 遇到如下问题
[quote]NoMethodError in StoreController#add_to_cart

undefined method `product' for #<Product:0x4a02900>

RAILS_ROOT: ./script/../config/..

D:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1860:in `method_missing'
#{RAILS_ROOT}/app/models/cart.rb:16:in `add_product'
#{RAILS_ROOT}/app/models/cart.rb:16:in `each'
#{RAILS_ROOT}/app/models/cart.rb:16:in `find'
#{RAILS_ROOT}/app/models/cart.rb:16:in `add_product'
#{RAILS_ROOT}/app/controllers/store_controller.rb:11:in `add_to_cart'[/quote]
我的cart.rb 文件代码如下

class Cart

attr_reader :items

def initialize
@items = []
end

def add_product(product)
current_item = @items.find {|item| item.product == product}
if current_item
current_item.increment_quantity
else
@items << CartItem.new(product)
end
end
end


store_controller.rb代码如下
class StoreController < ApplicationController

def index
@products = Product.find_products_for_sale
end

def add_to_cart
@cart = find_cart
product = Product.find(params[:id])
@cart.add_product(product)
end

private

def find_cart
session[:cart] ||= Cart.new
end
end


提示是找到不到items[]数据中的product方法,
也就是这一句上,
current_item = @items.find {|item| item.product == product}

一直都找不原因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值