2022-04-20 ActiveRecord ignored_columns / ジョシュアツリーの法則
ActiveRecord ignored_columns
ActiveRecord 上でARからカラムを認知させたくないときに使える。
class Project < ActiveRecord::Base
self.ignored_columns = [:category]
end
ActiveRecord::ModelSchema::ClassMethods | RailsDoc(β)
ユースケース
- カラムを削除するとき: カラム削除より先に
ignored_colums
しておかないとデプロイ時エラー - パフォーマンス対策: 無駄なselectを極力減らしたいとき
- カラムの値を触らせたくないとき:
attr_readonly
が使えるのだけどカラムの更新処理は無視され警告もエラーも出ない。リファクタのときとかにエラーを出したいときはignored_colums
が適している
参考
- ActiveRecordモデルのカラムを消すときにignored_columnsが必要な理由 - Progate Tech Blog
- ActiveRecord::ReadonlyAttributes::ClassMethods | RailsDoc(β)
ジョシュアツリーの法則
人は名前を知った途端、それが見えるようになる。逆に、名前がなければ(知らなければ)、それが見えない。つまり、名前を知ることで存在を知る。
『プリンシプルオブプログラミング』、未読なのでセールのときとかに買って読んでおきたい。