Rails のカラム名の予約語
カラム名
備考
ActiveRecordのインスタンスメソッド
カラム名はActiveRecordのインスタンスからメソッドとしてアクセスできるため、ActiveRecordのインスタンスメソッドと同じカラム名を作るとメソッドが競合してしまう。うっかりカラム名にしてしまいそうなものを抜粋。
RubyのObjectのインスタンスメソッド
ObjectのメソッドはActiveRecordに継承されている。ActiveSupportで追加されたメソッドもある。
FactoryBotのFactory内のDSL
FactoryBotはfactoryの定義でカラム名をDSLとして使う。FactoryBotで予約しているメソッドとカラム名が被る場合はadd_attributes で回避できるが、同じ名前を避けておいた方が余計なトラブルを回避できる。https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#method-name--reserved-word-attributes
カラム名
備考
その他の注意点
- 例えば、Objectに
frozen?
のような最後に?
がつくメソッドがあるが、frozen
というメソッドはない。かといってfrozen
というカラムを作ると、ActiveRecord はfrozen?
というメソッド ( frozen.present? と同等 ) を作ってしまうため注意が必要。
- これと同じで enum の要素名も
xxx?
xxx!
という名前のメソッドが作成されるため注意が必要。