ruby - DataMapper:创建新记录或更新现有记录

标签 ruby datamapper

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)

关于ruby - DataMapper:创建新记录或更新现有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567686/

相关文章:

mysql - 将 DataMapper 与 Rails 3 、Ruby 1.9.2 和 MySQL 结合使用 --> [BUG] rb_gc() 上的跨线程冲突

mysql - 如何使用 Sinatra 和 Datamapper 将数组从表单传递到数据库?

ruby-on-rails - 除了在 Ruby on Rails 中使用 namespace 的操作之外,如何重写 URL?

ruby-on-rails - 未定义的方法 `each' 为 "#<Complaigns::ActiveRecord_Relation:0x00000003cfb4c8>":String

ruby - YAML:解析包含方括号作为其第一个字符的字符串时出错

ruby - 检查 Chef 中的环境变量 only-if guard

ruby-on-rails - 有 n,属于 Sinatra 中的 DataMapper

orm - 为什么 Doctrine 2 没有基本的验证方法来验证所有值是否适合实体属性?

ruby-on-rails - 使用 Rails 将表的一列映射到不同的类