我有具有多对多关系的模型 A 和模型 B,因此我有一个第三个表(比如 C),每个表都保存信息。我正在使用 MySql。
所以我的模型是这样的:
class a < ActiveRecord::Base
has_many :c
end
class b < ActiveRecord::Base
has_many :c
end
class c < ActiveRecord::Base
belongs_to :a
belongs_to :b
end
当然 c 包含 a_id 和 b_id 列。这是现有的模型。
现在我需要一个新的模型类,其中包含 a_id 和 b_id(例如,由于复杂的原因,它需要 a & b 而不是 c,因为它需要 a & b 的所有现有和未来 C 条目)。
class d < ActiveRecord::Base
...
belongs_to :a
belongs_to :b
end
我的问题是关于如何创建一个将 c 也加入其中的查询(这是为了在迭代结果和访问 c 时允许过滤并减少 SQL 查询的数量)。
如何执行此类查询?
我想我知道如何开始,但不知道如何结束。
D.where(<something>).includes(:a).includes(:b).joins(??????????)
谢谢