StoreController中的LoadError#add_to_cart

时间:2011-06-04 15:43:28

标签: ruby-on-rails ruby

我正在尝试使用带有Rails第三版的敏捷Web开发学习Ruby on Rails,我完全陷入困境。我在Linux Mint上使用Ruby版本1.8.7和rails 2.3.5。在本书建议我从cookie更改为SQLite数据库以管理会话之后,应用程序不再有效。当我点击http://localhost:3000/store中的“添加到购物车”按钮时出现以下错误:

StoreController #add_to_cart中的LoadError 预期/home/dave/work/depot/app/models/cart.rb来定义购物车 RAILS_ROOT:/ home / dave / work / depot 应用程序跟踪|框架跟踪|完整追踪 /usr/lib/ruby/1.8/active_support/dependencies.rb:426:in load_missing_constant' /usr/lib/ruby/1.8/active_support/dependencies.rb:80:in const_missing' /usr/lib/ruby/1.8/active_support/dependencies.rb:92:in const_missing' /usr/lib/ruby/1.8/active_support/dependencies.rb:437:in load_missing_constant' /usr/lib/ruby/1.8/active_support/dependencies.rb:96:in const_missing' /home/dave/work/depot/app/controllers/store_controller.rb:14:in find_cart' /home/dave/work/depot/app/controllers/store_controller.rb:8:in`add_to_cart' 请求 参数: { “authenticity_token”=> “中38s45mRICYPJ7dw + Z / rlcBnQN7T8ZwfEThzUTFUrjeM =”,  “ID”=> “中3”} 显示会话转储 响应 头: { “内容类型”=> “中”,  “缓存控制”=> “中无缓存”}

   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

我在Google上对此进行了搜索,类似的错误似乎与utf-8编码有关。我使用Gedit将文件保存为Western(ISO 8859-15)编码,它没有任何区别。我也重新输入了Vi中的程序无济于事。每次我做了更改,我都停止并重新启动服务器,并进入db:sessions:清除到终端。

我很难过。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

当正在加载的文件出错时,往往会发生此错误。解决这个问题的一种方法是运行:

ruby script/console

......然后:

Cart

这应该加载模型OK,或输出更有用的错误。

答案 1 :(得分:0)

检查你的app / models / cart.rb,它应该是这样的


 class Cart < ActiveRecord::Base

 #stuff here 
 end

确保它。