我正在使用 DataMapper 在 MySQL 中创建行。为了在我的“Ryne”表中创建一个新行,我这样做:
a = {:saying, "Ppffftt..!"}
Ryne.create a
所以我对自己说,“既然我一直都在使用它,为什么不做一个更“巧妙”的方法来做到这一点……”:
def insertsaying(x)
h = {:saying, x}
Ryne.create h
end
但是,我在 IRB 中的输出insert saying("Pffffft..")
是:
NoMethodError: undefined method `insertsaying' for main:Object
from (irb):2
该方法本身是在一个 .rb 文件中定义的,我目前在 IRB 中需要该文件。除了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
我不确定我做错了什么,但我认为这是一个范围问题。我需要在方法中要求其他东西吗?