为什么我为main:Object获取“未定义的方法'insertaying'?

时间:2013-03-29 15:03:44

标签: ruby methods datamapper

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

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

0 个答案:

没有答案