У меня есть некоторый код, который выглядит следующим образом:
def checkout(batch, checkout_user)
...
if self.checkouts.build(removed_at: Time.now, checkout_location: batch.checkout_location, user: checkout_user, checkout_batch: batch)
update_attribute(:library_status, 'Checked out')
...
Я больше не хочу, чтобы эта строка update_attribute(:library_status)
была там, потому что я не хочу помечать статус как "извлеченный".Однако я хочу сохранить созданные извлечения (связь), потому что возникает ошибка, если объект batch
не связан с объектом checkout
.
В модели CheckoutBatch
:
has_many :catalog_items, through: :checkouts
Приведенная выше строка является виновником.Код, который выглядит как batch.catalog_items
, ничего не вернет, если только checkout
не будет сохранен, потому что я получаю catalog_items
через извлечения.
Так как мне сохранить обратные вызовы извлечения и возврата (как делает update_attributes?) но не обновить какие-либо атрибуты?Могу я просто позвонить self.checkouts.save
?Это верно?