Rails:获取城市人员的phone_number

时间:2015-04-14 19:35:33

标签: ruby-on-rails activerecord

我需要获取一个城市中所有人的电话号码,我的数据库是这样的:

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)

1 个答案:

答案 0 :(得分:2)

加入嵌套的has_many关联,然后应用这样的where子句:

Phone.joins(person: :city).where(cities: {id: 1})