Я создаю приложение для выставления счетов в Rails, которое имеет следующие модели.
class Company < ActiveRecord::Base
has_many :clients
has_many :items
class Client < ActiveRecord::Base
belongs_to :company
class Invoice < ActiveRecord::Base
belongs_to :company
belongs_to :client
has_many :line_items
has_many :items, through: :line_items
accepts_nested_attributes_for :line_items
after_initialize :set_total
def set_total
total = 0
items.to_a.each do |item|
total += item.price * item.qty
end
self.total = total
end
class Item < ActiveRecord::Base
belongs_to :company
has_many :line_items
has_many :invoices, through: :line_items
class LineItem < ActiveRecord::Base
belongs_to :invoice
belongs_to :item
На данный момент я могу успешно генерировать счета. Проблема заключается в том, что общая сумма счета-фактуры меняется всякий раз, когда я меняю цену товара, которая указана в сгенерированном счете-фактуре.
Что было бы лучшим способом предотвратить это? Как только счет-фактура создан, я не хочу, чтобы к его сумме применялись какие-либо изменения.
Спасибо
total
в таблицеinvoice
? Можете ли вы предоставить детали реализации методаset_total
. - person Dharam Gollapudi   schedule 23.02.2016def set_total total = 0 items.to_a.each do |item| total += item.price * item.qty end self.total = total end
- person Ali ca   schedule 23.02.2016