在ActiveRecord中有5种方法可以为属性保存新值。不幸的是,我只能找到一种工作方式,我不确定这是最有效的方式:
review = Review.find(id)
review.status = 'ok'
review.save!
我开始使用更新方法,但出于某些奇怪的原因删除了我的评论行
review = Review.update(id, :status => 'ok)
review.save!
有什么想法吗?
答案 0 :(得分:4)
你应该使用
review = Review.find_by_id(id)
review.update_column(:status, 'ok')
您可以看到the docs。
注意:在{Rails 3.2.8
>中已弃用ActiveRecord::Base:update
答案 1 :(得分:1)
为属性保存新值的最有效方法是执行以下操作:
Review.update_attribute(id, :status => 'ok')
此后无需调用save方法,因为ActiveRecord会使用update_attribute
方法自动保存值。
现在,请记住,只有在通过对象上设置的验证时,更改才有效。
点击此链接了解更多信息:
答案 2 :(得分:0)
应该是
review.update_attributes(status: 'ok')