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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题