我正在尝试使用带有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:清除到终端。
我很难过。有什么想法吗?
答案 0 :(得分:1)
当正在加载的文件出错时,往往会发生此错误。解决这个问题的一种方法是运行:
ruby script/console
......然后:
Cart
这应该加载模型OK,或输出更有用的错误。
答案 1 :(得分:0)
检查你的app / models / cart.rb,它应该是这样的
class Cart < ActiveRecord::Base #stuff here end
确保它。