アトトック代表の開発ブログ

プログラミングや会社のこと、写真、自転車のことなど書いてます。

Railsのモデルのhas_manyに外部キーを指定する

Railsで開発しているとRailsの規約に乗っていればサクサクと開発できることが多いのですが、ときどきレールから外れないとしょうがない場合があります。
例えば別のシステムで開発したテーブルを利用する場合に、参照先のテーブルのIDがRailsの規約と合っていない場合があります。
fugasというテーブルにhogesテーブルのidを保持する場合、Railsの規約ではhoge_idとなりますが、規約から外れてhogehoge_idになっていた場合など一手間必要です。
Hogeモデルにhas_manyでfugasを指定したい場合は、has_manyにforeign_keyで外部キーのhogehoge_idを指定します。


こんな感じ

class Hoge < ApplicationRecord
  has_many :fugas, foreign_key: 'hogehoge_id', class_name: 'Fuga', dependent: :destroy
end