如何加载includes
深度超过一个级别?渴望加载一级深度是直截了当的:
例如:
@blogs = Blog.all.includes(:user)
鉴于每个blog
与belongs_to
的关联user
。因此:每个blog
记录都有一个user_id
属性。
现在:如果user
与来自belongs_to
的{{1}}有city
关联,该怎么办?因此:每个user
记录都有一个city_id
属性。
我想做的是
blogs
user
与includes
city
,这是通过博客相关的user
抓取的。 (也许这可以通过includes
来完成,但我不知道语法。以下是模型:
# app/models/blog.rb
class Blog < ActiveRecord::Base
belongs_to :user
end
# app/models/user.rb
class User < ActiveRecord::Base
has_many :blogs
belongs_to :city
end
# app/models/city.rb
class City < ActiveRecord::Base
has_many :users
end
答案 0 :(得分:4)
使用哈希语法显示嵌套包含
@blogs = Blog.all.includes(:user => :city)
中详细了解它