0

我正在使用 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 

我不确定我做错了什么,但我认为这是一个范围问题。我需要在方法中要求其他东西吗?

4

0 回答 0