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 }
用新参数更新 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 }