【问题标题】:update_column method for multiple attributes多个属性的 update_column 方法
【发布时间】:2013-07-30 19:15:54
【问题描述】:

我有一个具有一些属性的模型:attr1、attr2 和 attr3。 我需要在不执行回调和验证的情况下更新此属性。 我找到了update_column 方法,但我想同时更新这三个属性。我需要类似的东西:

update_columns({attr1: val1, attr2: val2, attr3: val3})

改为

update_column(attr1, val1)
update_column(attr2, val2)
update_column(attr3, val3)

【问题讨论】:

  • 我们需要查看您为解决问题而编写的代码,以及为什么它不起作用。请参阅“Writing the perfect question”。
  • 代码可以运行,但我不想去数据库三次。我想去一次同时更新三个属性。

标签: ruby ruby-on-rails-3 activerecord


【解决方案1】:

您可以按照here 的文档使用update_columns(attr1: val1, attr2: val2, attr3: val3)。您只需要传入键值对,而不是实际的哈希对象。

【讨论】:

    【解决方案2】:

    试试这个:

    update_attributes!(attr1: val1, attr2: val2, attr3: val3)
    

    也许没有!,但我认为这是必要的。

    【讨论】:

    • 使用update_attributes! 不会跳过回调。它根本不返回 true 或 false,但如果更新失败则抛出异常。
    猜你喜欢
    • 2013-06-20
    • 1970-01-01
    • 2019-05-30
    • 2015-12-08
    • 1970-01-01
    • 2016-04-11
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多