我需要获取一个城市中所有人的电话号码,我的数据库是这样的:
class City < ActiveRecord::Base
has_many :persons
end
...
class Person < ActiveRecord::Base
belongs_to :city
has_many :phones
end
...
class Phone < ActiveRecord::Base
belongs_to :person
end
...
所以我要把一个城市里的所有手机拿到这样的东西:
City.find(1).persons.phones
任何帮助?
目前我用这个:
ids=City.find(1).persons.ids
phones=Phones.where(id: ids)
答案 0 :(得分:2)
加入嵌套的has_many关联,然后应用这样的where子句:
Phone.joins(person: :city).where(cities: {id: 1})