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使用) - しょぼエンジニアの仕事メモ