class Bill < ApplicationRecord
has_many :bill_items
has_many :items, through :bill_items
def add(item)
BillItem.create(bill: self, item: item)
update_total
end
def update_total
total = 0
bill_items.each do |item|
total += item.price
end
self.update(total: total)
end
end
class BillItem < ApplicationRecord
belongs_to :bill
belongs_to :item
end
class Item < ApplicationRecord
has_many :bill_items
end
Я пытаюсь обновить все биллиты, прикрепленные к счету, выполнив следующие действия: bill.bill_items.update_all(price: new_price)
Кажется, что обновляется фактическая запись, но не связанная запись. то есть. Если я запускаю BillItem.pluck(:price)
, я получу новые цены, но если я запущу bill.bill_items.pluck(:price)
, я получу старые. Как мне обновить связанные записи?