update_all не работает на детей - PullRequest
0 голосов
/ 26 марта 2019

У меня есть две следующие модели:

class Device < ApplicationRecord
  belongs_to :hardware_device
  ...

class HardwareDevice < ApplicationRecord
  has_many :devices
  ...

Когда я делаю:

@hardware_device.devices.update_all(active: false)

Активное состояние устройства, связанного с hardware_device, остается истинным.

Если я, однако, запускаю этот код:

@hardware_device.devices.first.update(active: false)

Работает нормально, для активного установлено значение false. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 26 марта 2019

Найдена причина проблемы. У меня было

  after_initialize :init

  def init
    self.active ||= true
  end

В модели устройства. Меняем его на:

  def init
    if new_record?
      self.active ||= true
    end
  end

Исправлена ​​проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...