J'ai une application Rails 2.3.5 standard avec un modèle appelé Post. Post possède un attribut appelé URL, et le getter suivant est défini:Comment les méthodes de champ de saisie (text_area, text_field, etc.) obtiennent-elles des valeurs d'attribut à partir d'un enregistrement dans un bloc form_for?
def url
p = 'http://'
u = self[:url]
u.starts_with?(p) ? u : "#{p}#{u}"
end
Si je charge script/console
, je peux faire Post.first.url
et obtenir le résultat souhaité (par exemple, il retourne http://foo.com si elle est vraie valeur de l'attribut est foo.com)
Cependant, si j'ai un bloc form_for
, et faire quelque chose comme form.text_field :url
, il ne retourner l'URL http: // préfixé; au lieu de cela, il renvoie simplement foo.com
Comment est-ce que form_for accède aux attributs des modèles ActiveRecord? Il semble contourner les getters surchargés.
Merci; Est-ce que cela fonctionnera dans les deux contextes (form.text_field * et * doing @ post.url)? – Kyle