我的客户和个人模型如下所示:
class Customer < ActiveRecord::Base
belongs_to :person
belongs_to :company
end
class Person < ActiveRecord::Base
has_one :customer
end
如何获取与客户有关联的所有个人记录?
答案 0 :(得分:2)
使用sql可能类似于
Customer.where("customers.person_id IS NOT NULL")
要获得Person
记录,您可以使用join
Person.joins( :customers ).where("customers.person_id IS NOT NULL")
我不是起诉where
这里是必要的(我相信不是)所以先试试Person.joins( :customers )
答案 1 :(得分:1)
person_array = []
Person.all.each do |p|
unless p.customer.nil?
person_array << p
end
end
答案 2 :(得分:0)
我不认为这是最快的查询,但是:
Customer.where('person_id IS NOT NULL').map(&:person)
答案 3 :(得分:0)
rails 2.3.x
Customer.all(:include => :person).map(&:person).compact