0

タスク リストを返す REST API を作成しています。

ここに私のデータセットがあります:

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

タスクにはサブタスクを含めることができるため、モデルを自己結合させました。

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 tasksWHERE tasks. parent_id= 0

タスク ロード (0.3ms) SELECT tasks.* FROM tasksWHERE tasks. parent_idに (1, 2)

したがって、実際にはクエリを実行しますが、結果をオブジェクトに入れません。応答に表示される唯一の 2 つのタスクは、parent_id = 0 のタスクです。

私は何か間違ったことをしていますか?このサブタスクも応答に含めたいと思います。

4

1 に答える 1