タスク リストを返す 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
.* FROMtasks
WHEREtasks
.parent_id
= 0タスク ロード (0.3ms) SELECT
tasks
.* FROMtasks
WHEREtasks
.parent_id
に (1, 2)
したがって、実際にはクエリを実行しますが、結果をオブジェクトに入れません。応答に表示される唯一の 2 つのタスクは、parent_id = 0 のタスクです。
私は何か間違ったことをしていますか?このサブタスクも応答に含めたいと思います。