Un exemple de ce dont je parle :
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
Cela semble fonctionner, mais je viens de lire la section sur le remplacement des méthodes d'attributs dans la documentation d'ActiveRecord::Base ( http://rails.rubyonrails.com/classes/ActiveRecord/Base.html ), et il suggère d'utiliser les méthodes read_attribute et write_attribute. Je me suis dit qu'il devait y avoir un problème avec ce que je faisais dans l'exemple ci-dessus ; sinon, pourquoi ces méthodes seraient-elles considérées comme la "bonne façon" de remplacer les méthodes d'attributs ? Ils imposent également un idiome beaucoup plus laid, donc il doit y avoir une bonne raison...
Ma vraie question : Y a-t-il quelque chose qui ne va pas dans cet exemple ?