2009-06-28 5 views

Répondre

1

Ajoutez attr_accessors pour amount_dollars et amount_cents. utiliser un rappel before_save pour mettre à jour le montant.

+0

Merci, ça a bien fonctionné. – Ethan

0

Vous pouvez définir un attribut dit virtuel pour chacun de ces champs dans la vue.

def amount_dollars=(value) 
    ... 
end 

def amount_cents=(value) 
    ... 
end 

Ils traitent les valeurs qui proviennent du formulaire soumis. Dans chacune de ces méthodes, vous modifiez l'attribut de quantité de votre modèle de manière appropriée.

+0

Comment cela fonctionne-t-il? Si vous appelez amount_dollars = (valeur) sans savoir ce que les centimes sont supposés être, vous ne définissez pas le montant correctement. – Ethan

3

Vous recherchez peut-être des attributs virtuels?

Il y a un railcast à ce sujet.

Vous pouvez watch it here. Il y a aussi le text-based version of it au cas où vous l'aimeriez mieux.

+0

+1 Certainement un bon candidat pour les attributs virtuels. –

+0

Merci. J'ai regardé le Railscast et essayé les attributs virtuels, mais c'était problématique parce que j'avais une colonne DB mappée à deux champs de l'interface utilisateur, plutôt que l'inverse. – Ethan

Questions connexes