Как я могу получить полный список, включая вложенные отношения? - PullRequest
0 голосов
/ 20 марта 2012

У меня есть модель задач, связанная с действиями, и я хочу получить массив / хэш со всеми задачами и связанными с ними действиями, например:

<% task_group =[
     ['Task1', {'Activity1' => 1, 'Activity2' => 2}], 
     ['Task2', {'Activity3' => 3, 'Activity4'=> 4}]
    ] %>

Я придумал Task.includes(:activities).all.map(&:name), но это дает мне только список с действиями и их названием.

Как получить полный список, включающий вложенные отношения?

Определение моей модели:

class Task < ActiveRecord::Base
  has_many :activities

class Activity < ActiveRecord::Base
  belongs_to :task

1 Ответ

1 голос
/ 20 марта 2012

вы можете использовать:

Task.includes(:activities).all.map{|t| [t.name, t.activities.inject({}){|H, a| H[a.name] = a.id; H}]}

EDIT:

Task.includes(:activities).all.map{|t| [t.name, t.activities.inject({}){|h, a| h[a.name] = a.id; h}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...