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