、私は次のモデルを持って、空の結果とGROUP_BY:Railsは
class Task
belongs_to :task_category
end
class TaskCategory
has_many :tasks
end
私は、タスクカテゴリ別にグループタスクにしたい、これが私の作品:
はTask.all.group_by(&:task_category)
# =>
{
#<TaskCategory id: 1, name: "call", ... } =>[#<Task id: 1, ...>, #<Task id: 2, ...>],
#<TaskCategory id: 2, name: "event", ... } =>[#<Task id: 3, ...>, #<Task id: 4, ...>]
}
問題は、私はすべてのタスク・カテゴリが返さたいですタスクコレクションが空であってもしたがって、次のようなものが動作します。
この場合、タスクカテゴリにはタスクがないため、値は空の配列です。 group_byはこれを許可するオプションをサポートしていますか?そうでない場合は、これを1ライナーでエレガントに行うことができますか?
はい、あなたは正しいと思います。インクルードを使用すると、追加のクエリを実行せずにコレクションを繰り返し処理できます。 – Donato
@Donatoそのeager_loading – 7urkm3n