我有一个国家,其中有很多区域,其中有很多商店。
国家>区域>商店。
我想根据国家而不是地区返回所有商店的清单。像这样:
@shops = Shops.find(some query based on country = America).
谢谢,
答案 0 :(得分:2)
参考Rails'关于连接表的文档。具体来说,请查看标有" 12.2.4加入嵌套关联(多级)"的小节":
http://guides.rubyonrails.org/active_record_querying.html#using-array-hash-of-named-associations
您的查询可能最终会看起来像这样(尽管您可能需要检查某些符号的复数形式):
@shops = Shop.joins(:area => :countries).where(:countries => {:name => 'America'})
答案 1 :(得分:2)
您的商店属于地区,地区属于哪个国家/地区?如果是这样,也许你可以做这样的事情。
class Country
has_many :areas
has_many :shops, through: :areas
end
class Area
belongs_to :country
end
class Shop
belongs_to :area
end
所以你可以使用这样的东西:@country.shops