私が話していることの例:
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
これは機能しているようですが、ActiveRecord :: Base docsの属性メソッドのオーバーライドに関するセクションを読んだだけで、read_attribute
およびwrite_attribute
メソッドの使用を提案しています。上記の例で私がやっていることに何か問題があるに違いないと思いました。そうでなければ、なぜこれらのメソッドを属性メソッドをオーバーライドする「正しい方法」として祝福するのでしょうか?彼らはもっと醜いイディオムを強制しているので、それには正当な理由があるに違いない...
私の本当の質問:この例には何か問題がありますか?