Mysql Ruby(不是Rails)在使用find()时给出了一个NoMethodError

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

我有两个脚本,它们使用ActiveRecord与MySQL数据库交互,而不使用Rails包的其余部分,尽管我已经安装了完整的Rails gem。然而,当我试图在ActiveRecord派生类上调用find时,最近尝试使用这些类给了我一个命名错误。 类代码非常基本:

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