我有三种模式:
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!
但并不是最好的解决方案..任何想法?
答案 0 :(得分:2)
你的意思是你有不同的类别和相同的类别名称?如果是这样,你可以试试这个:
categories = Category.find(:all,:joins=>:jobs,
:conditions=>'jobs.address_id is not null', :group => "category.name")
注意:如果有多个具有相同名称的类别,您将获得其中一个。您无法控制返回给您的特定行。