Как распечатать данные из нескольких таблиц в рельсовой ассоциации? - PullRequest
0 голосов
/ 24 января 2020

Я создал проект, этап, задачу и вспомогательную задачу. Проект имеет связь один со многими со стадией, стадия имеет связь один со многими с задачей, а задача имеет связь один со многими с подзадачей. Я хочу отобразить все подзадачи каждой задачи в проекте # show, в настоящее время я могу отобразить все подзадачи для каждой задачи.

rout.rb

  resources :projects do
    resources :stages do
      resources :tasks do
        resources :sub_tasks
      end
    end
  end

projects_controller.rb

  def show
    @project = Project.includes(stages: :tasks).find(params[:id])
    @stages = @project.stages
    @sub_tasks = SubTask.all
  end

1 Ответ

1 голос
/ 24 января 2020

Вы можете включить subtasks вместе с tasks следующим образом:

 def show
    @project = Project.includes({stages: {tasks: :sub_tasks}}).find(params[:id])
    @stages = @project.stages
    # Now when you iterate through stages, you can fetch tasks associated with each stage, and for each task, you can get subtasks. All of this happens without additional DB queries because of the "includes"
  end

Это позволит выбрать все этапы, относящиеся к проекту, все задачи, связанные с каждым этапом, а затем подзадачи, связанные с каждое задание!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...