0

MySQL で行を作成するために DataMapper を使用しています。「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

メソッド自体は、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 

何が間違っているのかわかりませんが、スコープの問題だと思います。メソッドで何か他のものを要求する必要がありますか?

4

0 に答える 0