铁路高级找到

时间:2010-03-06 23:49:56

标签: ruby-on-rails activerecord

我有三种模式:

class Address < ActiveRecord::Base
 has_many :jobs
end

class Category < ActiveRecord::Base
  has_many :jobs, :dependent => :destroy
end

class Job < ActiveRecord::Base
 belongs_to :category
 belongs_to :address
end

我正在尝试获取作业具有address_id!= NULL的所有类别 我快要做了:

categories = Category.find(:all,:joins=>:jobs,:conditions=>'jobs.address_id is not null')

问题是我有很多重复的类别。我可以解决这个问题:

categories.uniq!

但并不是最好的解决方案..任何想法?

1 个答案:

答案 0 :(得分:2)

你的意思是你有不同的类别和相同的类别名称?如果是这样,你可以试试这个:

categories = Category.find(:all,:joins=>:jobs,
           :conditions=>'jobs.address_id is not null', :group => "category.name")

注意:如果有多个具有相同名称的类别,您将获得其中一个。您无法控制返回给您的特定行。