次のようなばかげた名前の列がたくさんあるレガシーデータベースがあります。
some_field_c some_other_field_c a_third_field_c
これらの属性をアンダースコアと「c」を除いた名前に自動的にエイリアスするRailsActiveRecordサブクラスを作成したいと思います。しかし、私が試したとき:
attributes.each_key do | key |
name = key
alias_attribute key.to_sym, key[0, (key.length -2)].to_sym if key =~ /_c$/
end
クラス定義で、「未定義のローカル変数またはメソッドの「属性」」エラーが発生しました。また、これらのメソッドを上書きしてみました。
method_missing に対応する?
しかし、私もそのルートでエラーが発生し続けました。
したがって、私の質問(実際の質問)は次のとおりです。
- 私がやろうとしていることは可能ですか?
- もしそうなら、それを行うための最良の方法は何ですか(反復エイリアシングまたは上書きメソッドがありません)?
- それほど問題がなければ、#2の実行方法の非常に簡単なコードサンプルがすばらしいでしょう。
この投稿が受け取った回答を事前に感謝します。