【发布时间】:2013-03-12 09:58:14
【问题描述】:
我有一个名为 Product 的模型。
p = Product.new(...) and
p.save
我想完成以下任务:
如果有另一个产品具有相同的 id(不是 pk),那么我们更新产品,否则我们创建一个新产品。
我认为这可以在 before_save 回调中完成!?
我试过这样
before_save :try, on: :create
def try
p = Product.where(id: self.id).first
p and p.update_attributes(...) and return false
*1
end
*1,此时属性已更新,返回false表示未创建新模型,但我认为数据库已回滚,因为更新未保存。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord ruby-on-rails-3.1