簡體   English   中英

#的急切負載包含兩個或更多個級別

[英]Eager Load with #includes two levels or more deep

你怎么急於負載includes不止一層深? 渴望裝載一個深度很簡單的方法:

例如:

@blogs = Blog.all.includes(:user)

鑒於每個blog都有一個與userbelongs_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM