Ho un modello padre, che viene aggiornato tramite parametri come "@ client.update_attributes (params [: client]" .I miei parametri è una chiamata per distruggere una "scheda client 'Ho un metodo before_destroy sulla scheda client che impedisce che venga distrutto ecc. Il mio metodo before_destroy funziona, tuttavia, gli errori su before_destroy non si propagano al modello correlato quando vengono aggiornati. Qualche consiglio su come propagare questo errore del modello al modello associato quando aggiornato?prima di distruggere sull'aggiornamento del modello associato, errori non propositivi
class Client < ActiveRecord::Base
has_many :client_cards, :dependent => :destroy
validates_associated :client_cards
class ClientCard < ActiveRecord::Base
belongs_to :client, :foreign_key => 'client_id'
attr_accessible :id, :client_id, :card_hash, :last_four, :exp_date
before_destroy :check_relationships
def check_finished_appointments
appointments = Appointment.select { |a| a.client_card == self && !a.has_started }
if(appointments && appointments.length > 0)
errors.add(:base, "This card is tied to an appointment that hasn't occurred yet.")
return false
else
return true
end
end
end
no .. ho fatto un passo attraverso con il debugger. non si tratta dell'eliminazione di client_card, è nel metodo di aggiornamento del controllore del modello principale (client). viene chiamato client.update_params e il client non ha errori (anche se i param dicono di distruggere un oggetto associato, ad es. client_card) – f0ster