J'ai une méthode after_create pour mon modèle Contact.est-ce qu'une méthode de rappel after_created Rails sur un modèle a une instance du modèle nouvellement créé?
Cependant, quand je mets la valeur, elle est nulle. Comment puis-je avoir un rappel pour un modèle nouvellement créé (je fais une bonne quantité de transformation dans le modèle de création) référencé dans la méthode de rappel?
after_save :update_company
def update_company
puts self.inspect
puts self.company
if company.phone.empty?
company.phone = self.phone
company.save
end
end
Quand je regarde les journaux pour self.inspect, il ne montre aucune des transformations utilisées dans la méthode de création ... encore, cela devrait fonctionner seulement après avoir créé (et enregistré), l'objet, non?
Voici la méthode de création:
def create
@contact = Contact.create(params[:contact])
unless @contact.vcard.path.blank?
paperclip_vcard = File.new(@contact.vcard.path)
@vcard = Vpim::Vcard.decode(paperclip_vcard).first
@contact.title = @vcard.title
@contact.email = @vcard.email
@contact.first_name = @vcard.name.given
@contact.last_name = @vcard.name.family
@contact.phone = @vcard.telephone
@contact.address.street1 = @vcard.address.street
@contact.address.city = @vcard.address.locality
@contact.address.state = @vcard.address.region
@contact.address.zip = @vcard.address.postalcode
@contact.company_name = @vcard.org.fetch(0)
end
@contact.user_id = current_user.id # makes sure every new user is assigned an ID
if @contact.save
flash[:notice] = "Successfully created contact."
redirect_to @contact
else
render :action => 'new'
end
end
'si company.phone.blank?' Essayer que – s84
je mets tout un tas de choses dans la méthode de création .... ne après-create signifie qu'il fera après il traverse la méthode de création ... parce qu'il ne semble pas le faire .... – Angela