Rails: 设置参数但不保存

Rails: set params but do not save

用新参数更新 Rails 记录的调用是什么,比如说,存储在 hash 变量中?这个:

@user.update(hash)

保存记录,因为我想把调用放在回调中我不想保存它,只需准备好在回调中正确保存它.

您可以使用attributes=设置属性但不保存记录。

@user.attributes = hash

保存对象时,新属性将保存在数据库中。参见 http://apidock.com/rails/ActiveRecord/AttributeAssignment/attributes

你可以这样做:

@user.attributes = hash

@user.assign_attributes hash

请记住,这些都不会 return 您正在处理的对象。如果你想要,试试 Object#tap:

@user.tap { |u| u.assign_attributes hash }