除外テーブルとの結合
# メインデータテーブル
class Identified < ApplicationRecord
self.primary_key = :property_id
has_one :exclude_building, foreign_key: :identified_building_id, primary_key: :identified_building_id
end
# 除外データテーブル
class ExcludeBuilding < ApplicationRecord
belongs_to :identified, foreign_key: :identified_building_id, primary_key: :identified_building_id
end
# left joinして結合しないデータのみを抽出
IdentifiedProperty.
left_joins(:exclude_building).
where(exclude_buildings: {identified_building_id: nil}).
all
[LEFT OUTER JOINする https://qiita.com/snaka/items/3137cf5920a5ec0c4022]
[joinの際に任意のキー「同士」で結合したい時には、primary_keyとforeign_keyを使う https://qiita.com/fkagami/items/8a9cd724c8ce059913b2]