我正在使用DataMapper在MySQL中创建行。要在我的“Ryne”表中创建一个新行,我会这样做:
a = {:saying, "Ppffftt..!"}
Ryne.create a
所以我对自己说,“既然我一直使用这个,为什么不做一个更”光滑“的方法呢?”:
def insertsaying(x)
h = {:saying, x}
Ryne.create h
end
但是,我在insert saying("Pffffft..")
的IRB输出是:
NoMethodError: undefined method `insertsaying' for main:Object
from (irb):2
方法本身是在我目前在IRB中要求的.rb文件中定义的。除了DataMapper.setup
调用之外,.rb文件的其余部分如下所示:
DataMapper::Logger.new($stdout, :debug)
dm = DataMapper.setup :default, "mysql://php:phpwebsite@xxx.xxx.xxx.xxx/visit"
dm.resource_naming_convention = DataMapper::NamingConventions::Resource::Underscored
class Ryne
include DataMapper::Resource
is :reflective
reflect /.*/
end
DataMapper.auto_upgrade!
def insertsaying(x)
h = {:saying, x}
Ryne.create h
end
我不确定我做错了什么,但我认为这是一个范围问题。我需要在方法中要求其他东西吗?