Mysql Ruby(不是Rails)在使用find()时给出了一个NoMethodError
我有两个脚本,它们使用ActiveRecord与MySQL数据库交互,而不使用Rails包的其余部分,尽管我已经安装了完整的Rails gem。然而,当我试图在ActiveRecord派生类上调用find时,最近尝试使用这些类给了我一个命名错误。 类代码非常基本:Mysql Ruby(不是Rails)在使用find()时给出了一个NoMethodError,mysql,ruby,activerecord,osx-snow-leopard,Mysql,Ruby,Activerecord,Osx Snow Leopard,我有两个脚本,它们使用ActiveRecord与MySQL数据库交互,而不使用Rails包的其余部分,尽管我已经安装了完整的Rails gem。然而,当我试图在ActiveRecord派生类上调用find时,最近尝试使用这些类给了我一个命名错误。 类代码非常基本: class LineItem <ActiveRecord::Base set_primary_key 'id' set_table_name "line_items" end 但当我运行脚本时: require
class LineItem <ActiveRecord::Base
set_primary_key 'id'
set_table_name "line_items"
end
但当我运行脚本时:
require "dbconn"
require "lineitem"
li = LineItem.new()
li.find(1)
我得到一个错误:
NoMethodError: undefined method `find' for #<LineItem id: nil, trans_id: nil, trans_code: nil, data: nil>
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/attribute_methods.rb:260:in `method_missing'
from (irb):4
如果有人有什么建议,我将不胜感激。我在OSX 10.6.1上使用Ruby 1.8.7是的,它在10.5.x上运行得很好。难道找不到类方法而不是实例方法吗?您只能对数据库中已有的数据使用find方法,而不能像示例中那样使用空的ActiveRecord对象。如果活动的\u记录对象没有find方法,除非在数据库有一个列find,但该方法不会接受任何参数 我想您需要执行li=LineItem.find1
NoMethodError: undefined method `find' for #<LineItem id: nil, trans_id: nil, trans_code: nil, data: nil>
from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/attribute_methods.rb:260:in `method_missing'
from (irb):4