「has_many :through」の使い所

2021.02.21

3モデル間の関連を直接参照する場合

会員(1) - (n)注文(1) - (n)注文商品

↑のようなアソシエーションを組む時

class User < ActiveRecord::Base
  has_many :orders
  has_many :items, through: :orders
end

class Order < ActiveRecord::Base
  has_many :items
  belongs_to :user
end

class Item < ActiveRecord::Base
  belongs_to :order
end

次のように参照できるようになる

@user.items