Railsのカラム名に使ってはいけない・注意する単語集
🧪

Railsのカラム名に使ってはいけない・注意する単語集

Created
Apr 28, 2022 04:15 PM
Tags
Ruby on Rails

Rails のカラム名の予約語

カラム名
備考
プライマリーキー
外部キー
STAのモデル名
ポリモーフィックのモデル名
レコードを作成した時間
レコードを更新した時間

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! という名前のメソッドが作成されるため注意が必要。