轨道通过关联问题has_many



我有 3 个模型:

sophead
od 
od_item

索普黑德有许多ODOD有很多od_items

每个od_item属于一个 OD,每个 OD 属于一个 SOPHEAD

我希望能够像这样返回特定 sophead 的所有od_items

all_od_items_for_first_sophead = Sophead.first.od_items

获得 SOPHEAD 的所有od_item的正确关联是什么?

我试过:

has_many :od_items, through: :ods

但我相信这是不正确的,因为它与这张图并不真正匹配 - 在该图的示例中(具有不同的模型名称(,从患者到约会的箭头将朝另一个方向运行。

提前致谢

你的尝试是正确的方法。您的模型必须具有如下关联:

models/sophead.rb

class Sophead < ApplicationRecord
  has_many :ods
  has_many :od_items, through: :ods
end

型号/OD.rb

class Od < ApplicationRecord
  belongs_to :sophead
  has_many :od_items
end

型号/od_item.rb

class OdItem < ApplicationRecord
  belongs_to :od
end

最新更新