[英]Eager Load with #includes two levels or more deep
你怎么急於負載includes
不止一層深? 渴望裝載一個深度很簡單的方法:
例如:
@blogs = Blog.all.includes(:user)
鑒於每個blog
都有一個與user
的belongs_to
關聯。 因此:每個blog
記錄都有一個user_id
屬性。
現在:如果user
與他們所在的city
有一個belongs_to
關聯,該怎么辦。 因此:每個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
使用哈希語法顯示嵌套的包含
@blogs = Blog.all.includes(:user => :city)
您可以在ActiveRecord Query Interface指南中閱讀更多有關它的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.