rails 3: différence entre write_attribute et update_attribute
Je ne savais pas à propos de write_attribute jusqu'à aujourd'hui...
il semble que update_attribute, bien que ne demandant pas de validation est encore en appelant le :before_save rappels, alors que write_attribute ne le fait pas.
Est que la différence entre ces deux méthodes?
OriginalL'auteur standup75 | 2011-05-27
Vous devez vous connecter pour publier un commentaire.
update_attribute
fait réellement un physique appel à la DB. Vous bénéficiez d'une exécution d'unUPDATE
déclaration. C'est commeupdate_attributes
mais seulement pour une seule colonne.Tout
write_attribute
écrit l'attribut pour l'affectation à la modèle pour AR colonnes. Si vous avez été à l'écrasement d'un DB en fonction de l'attribut.Je n'ai pas regardé dans
write_attribute
largement, mais je pense Activerecord en fonction des modèles de gérer les affectations d'db colonnes de façon légèrement différente de celle de votre course de l'usine de accesseur.OriginalL'auteur nowk
write_attribute
est utilisé lorsque vous souhaitez remplacer la valeur par défaut des accesseurs pour une méthode. Il est essentiellement sucre syntaxique pourself[:attribute]=(value)
.Ont un look à la ActiveRecord::Base de la documentationsous la rubrique "Écraser par défaut accesseurs".
Si vous avez essayé de réécrire l'exemple de la documentation à l'aide de
update_attribute
, j'imagine qu'il finirait dans une boucle.OriginalL'auteur Douglas F Shearer