【问题标题】:Rails: set params but do not save [duplicate]Rails:设置参数但不保存[重复]
【发布时间】:2017-03-17 12:10:08
【问题描述】:

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

@user.update(hash)

保存记录,因为我想将调用放在回调中,我不想保存它,只需准备将其正确保存在回调中。

【问题讨论】:

  • 我认为在这一点上几乎每个关于 SO 的新问题都是重复的 :)

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

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

@user.attributes = hash

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

【讨论】:

    【解决方案2】:

    你可以这样做:

    @user.attributes = hash
    

    @user.assign_attributes hash
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 2021-02-24
      • 2018-02-24
      • 1970-01-01
      相关资源
      最近更新 更多