我有两种模式:
class Category
has many :jobs
end
class Job
belongs_to :category
end
所以我确实能够做到
c = Category.first
c.jobs
我的问题是:我怎样才能找到至少有一份工作的类别?
我今天忘了添加我正在执行它:
Category.find(:all).collect { |x| x if x.jobs.size > 0 }
它有效,但我很确定这不是最佳的。
答案 0 :(得分:1)
Category.find(:all, :joins => :jobs, :group => :id)
需要分组以避免重复,而联接确保仅选择具有作业的类别。