DataMapperは、レコードが存在しない場合に新しいレコードを作成したり、既存のレコードを更新したりするための便利な方法を提供しますか?APIドキュメントに何も見つかりませんでした。
これは私が現在持っているもので、あまりエレガントではないようです。
foo = Foo.get(id)
if foo.nil?
foo = Foo.create(#attributes...)
else
foo.update(#attributes...)
end
foo.save
DataMapperは、レコードが存在しない場合に新しいレコードを作成したり、既存のレコードを更新したりするための便利な方法を提供しますか?APIドキュメントに何も見つかりませんでした。
これは私が現在持っているもので、あまりエレガントではないようです。
foo = Foo.get(id)
if foo.nil?
foo = Foo.create(#attributes...)
else
foo.update(#attributes...)
end
foo.save
Foo.first_or_create(:id=>id).update(attributes)
また
(Foo.get(id) || Foo.new).update(attributes)
やってみます
Foo.first_or_create(:id=>id).update(attributes)
しかし、時々間違っているので、ここからいくつかのヒントを見つけます:DataMapper Docs
今、私は私のコードを次のように機能させます:
Foo.first_or_create({:id=>id}, {:name => name}).update(:id => id, :name => name)
お役に立てば幸いです。