[code]class Offer < ActiveRecord::Base
belongs_to :conf, :dependent => :destroy
end
class Conf < ActiveRecord::Base
has_one :offer
before_save :recost, :if => Proc.new { |conf| conf.offer.nil? }
def recost
self.cost = Conf.calculate(…parametry…)
end
def self.calculate(…parametry…)
#obliczenia
end
end[/code]
Czy ktoś mi mógł wyjaśnić, dlaczego ten callback wykonuje się zawsze - niezależnie od tego, czy Conf powstaje przy tworzeniu Offer (czyli tworzy się asocjacja Conf-Offer), czy w innym, bez Offer (Offer=nil)? Zależało mi, żeby wykonywał się tylko w tej drugiej sytuacji.