5

DataMapperは、レコードが存在しない場合に新しいレコードを作成したり、既存のレコードを更新したりするための便利な方法を提供しますか?APIドキュメントに何も見つかりませんでした。

これは私が現在持っているもので、あまりエレガントではないようです。

foo = Foo.get(id)
if foo.nil?
  foo = Foo.create(#attributes...)
else
  foo.update(#attributes...)
end
foo.save
4

2 に答える 2

4
Foo.first_or_create(:id=>id).update(attributes)

また

(Foo.get(id) || Foo.new).update(attributes)
于 2010-04-11T14:24:16.113 に答える
1

やってみます

Foo.first_or_create(:id=>id).update(attributes)

しかし、時々間違っているので、ここからいくつかのヒントを見つけます:DataMapper Docs

今、私は私のコードを次のように機能させます:

Foo.first_or_create({:id=>id}, {:name => name}).update(:id => id, :name => name)

お役に立てば幸いです。

于 2013-08-13T05:38:51.257 に答える