簡體   English   中英

Rails活動記錄渴望加載不會加載關聯

[英]Rails active record eager loading won't load associations

我正在編寫一個REST API來返回任務列表。

這是我的數據集:

id | name         | parent_id
1  | Ride a horse | 0
2  | Eat tacos    | 0
3  | Get some cash| 2

一個Task可以有子任務,所以我使模型自行加入:

class Task < ActiveRecord::Base
    belongs_to :parent, :class_name => 'Task', :foreign_key => 'parent_id'
    has_many :children, :class_name => 'Task', :foreign_key => 'parent_id'
end

然后我渴望加載任務

def index
    respond_with Task.where(parent_id: 0).includes(:children)
end

這是控制台顯示的內容:

任務負載(0.4ms)SELECT tasks 。* FROM tasks WHERE tasks parent_id = 0

任務負載(0.3毫秒)SELECT tasks 。* FROM tasks WHERE tasks parent_id IN(1、2)

因此它實際上會運行查詢,但是,不會將結果放入我的對象中。 響應中顯示的僅有2個任務是parent_id = 0的任務。

難道我做錯了什么? 我也希望這個子任務也能響應。

我認為問題在於默認情況下to_json不包含相關對象。 嘗試這個:

render json: Task.where(parent_id: 0).includes(:children).to_json(include: :children)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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