[Ruby on Rails] ActiveRecord で setter と getter の実装方法
- 2012 5/6
- カテゴリー : Ruby on Rails
- コメントを書く
Ruby on Rails の ActiveRecord で setter と getter を実装する方法を調べたのでメモ。
define_method を使って、下記のように書くか、
class MyModel < ActiveRecord::Base define_method("hoge"){ read_attribute "hoge" } define_method("hoge="){ |hoge| write_attribute "hoge", hoge } end |
もしくは、下記のように書くのもありです。
class MyModel < ActiveRecord::Base define_method("hoge"){ self["hoge"] } define_method("hoge="){ |hoge| self["hoge"] = hoge } end |
以上です。
【参考】
・ActiveRecordでsetterとgetterを実装する際の注意点(define_method使用) – しょぼエンジニアの仕事メモ
・define_method (Module) – Rubyリファレンス