wang20051 2008-06-05 16:18
浏览 188
已采纳

Web开发敏捷之道-应用Rails进行敏捷Web开发遇到问题

undefined method product' for #<Product:0x48b2c44>
在学习<应用Rails进行敏捷Web开发>第八章 迭代C 1 :创建购物车遇到undefined method
product' for #Product:0x48b2c44错误
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'

我的cart.rb 文件代码如下

lass 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

难道product被系统认成了一个可执行方法,而没有被认成一个对象放在items[]数据中

[b]问题补充:[/b]
我按照书上把session保存到数据库中,
现在把session重新生成,问题还是没有解决

  • 写回答

1条回答 默认 最新

  • iteye_12852 2008-06-05 16:42
    关注

    删除session文件,重起服务器再试试看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘