以下のようなモデルがある場合
class User < ApplicationRecord
self.table_name = 'wifi_agency_users'
belongs_to :agency
end
class Agency < ApplicationRecord
self.table_name = 'wifi_agencies'
has_many :users
end
スキーマはこんな感じです
User(id: integer, email: string, wifi_agent_id: integer, created_at: datetime, updated_at: datetime)
User.last.agency
で該当ユーザが所属している代理店を取得したいですが、Railsはデフォルトでuser.agency_id
とagency.id
を紐付けるので、何も取得できないです。スキーマを見るとagency_idは存在しないから。でもwifi_agent_idっていうのがあるので、これと紐付けたい!
こういう風に外部キーをしてするだけでOKです!
class User < ApplicationRecord
self.table_name = 'wifi_agency_users'
belongs_to :agency, foreign_key: 'wifi_agent_id'
end
そもそも前の人がagencyモデル作る時wifi_agencyにしたら楽なのに!!ヽ(`Д´メ)ノ プンスカ!