RailsでUserモデルがあってそれがnameという属性を持っているとする. このとき例えば, User#nameの値を条件fooによって変えたいとき, class User < ActiveRecord::Base def name foo ? self[:name] : 'some special value' end end のようにnameメソッドを上書きしてやればよい. ちなみにself[:name]の[]はread_attributeのaliasで, 別にwrite_attributeもあるらしい(参考). ※ 上書きというよりは先に定義していると言った方が正確だと思う. というのもaround aliasを使って class User < ActiveRecord::Base alias :org_name :name def name foo ? org_name : '
