【发布时间】:2017-06-08 16:21:07
【问题描述】:
假设我们有 2 个 AR 模型:
class User < ApplicationRecord
has_many :proposals
has_many :concerns
end
class Job < ApplicationRecord
has_many :proposals
has_many :concerns
end
Proposal 和 Concern 都是 User 和 Job 之间的连接模型:
class Proposal < ApplicationRecord
belongs_to :user
belongs_to :job
end
class Concern < ApplicationRecord
belongs_to :user
belongs_to :job
end
我要解决的是如何通过用户和工作来关联提案和关注点。 IE。我想使用急切加载等:
proposals.preload(:concerns).map do |proposal|
# proposal.concerns are preloaded here
# and all concerns have same user and job
end
我当前的解决方案只是简单的concerns 方法,它查找关注点 - 它无效,因为执行 N + 1 个查询。
我想避免向其中一个加入模型添加多余的外键。
【问题讨论】:
标签: ruby-on-rails associations rails-activerecord