Przykład o czym mówię:
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
Wydaje się, że to działa, ale właśnie przeczytałem sekcję dotyczącą zastępowania metod atrybutów w dokumentacji ActiveRecord :: Base i sugeruje użycie metod read_attribute
i write_attribute
. Pomyślałem, że coś musi być nie tak z tym, co robię w powyższym przykładzie; w przeciwnym razie dlaczego mieliby błogosławić te metody jako „właściwą drogę” do zastępowania metod atrybutów? Wymuszają też znacznie brzydszy idiom, więc musi być dobry powód ...
Moje prawdziwe pytanie: czy coś jest nie tak z tym przykładem?