Rails has_many通过ActiveRecord查询

时间:2016-03-01 22:30:30

标签: ruby-on-rails activerecord

class Entry < ActiveRecord::Base
  belongs_to :user
  belongs_to :job
end

class User < ActiveRecord::Base
  has_many :entries
  has_many :jobs, through: :entries
end

class Job < ActiveRecord::Base
  belongs_to :job_type
  has_many :entries
  has_many :users, through: :entries
end

我已经尝试了一段时间,似乎无法得到这个。我想通过条目选择分配给用户的所有作业(user_id:1)。任何帮助都会很棒。

注意:我试过

Job.find(3).entries

但只返回作业编号为3的条目。

3 个答案:

答案 0 :(得分:1)

User.find(1).jobs会为您提供您正在寻找的内容吗?

答案 1 :(得分:1)

u = User.find(1)
what_you_want = u.jobs

答案 2 :(得分:1)

其他(当前)答案至少需要两个数据库查询。这应该可以为你提供你想要的东西:

Job.joins(:users).where(users: { id: 1 })