Rails - 更新多个活动记录关系

时间:2016-12-02 09:18:49

标签: ruby-on-rails

我正在对模型进行更新以更新多个ActiceRecord关系。

但我想跳过一个属性,如果它没有提供(如果它的nil或empty我不想更新该属性)

   def update_numbers(numbers, comment)
      numbers.update_all (number_status: Number::STATUS_UPDATED, comment: comment if void_comment.present?)
    end

这显然不起作用,因为它不喜欢if条件。如果.blank?

,有没有办法不尝试更新评论

1 个答案:

答案 0 :(得分:2)

这对你有用吗?

def update_numbers(numbers, comment)
  hash = { number_status: Number::STATUS_UPDATED }
  hash[:comment] = comment if comment.present?

  numbers.update_all hash
end