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