Застрял на этом, если бы вы могли взглянуть ..:)
Я хочу получить все незавершенные проекты, включая все незавершенные задачи для определенного пользователя.
Этомои настройки до сих пор:
User (devise)
has_one :employee
Employee
belongs_to :user
has_and_belongs_to_many :tasks
has_and_belongs_to_many :unfinished_tasks, :conditions => { :tasks => { :completed_at => nil } }, :class_name => "Task"
has_many :unfinished_projects, :through => :unfinished_tasks, :source => :project, :uniq => true ( :include => :unfinished_tasks OR :include => :tasks ? )
Project
has_many :tasks
Task
belongs_to :project
has_and_belongs_to_many :employees
На мой взгляд (хам) Я хотел бы иметь что-то вроде этого:
- for project in current_user.employee.unfinished_projects
= project.name
# THESE ARE NOT THE ONLY THE TASKS FOR THE CURRENT_USER
- for task in project.tasks ( OR project.unfinished_tasks ? )
= task.name
Эта настройка работает для проектов, есть толькопроекты, в которых есть незавершенные задачи.
Но я не уверен, как включить незавершенные задачи в эти проекты.
Кто-нибудь знает лучший способ сделать это, я хотел бы иметьодин запрос для всего этого, если это возможно.
РЕДАКТИРОВАТЬ: Сложность в том, что задачи должны быть для current_user.Проекты загружаются идеально.
Но когда он загружает задачи:
- for task in project.tasks.unfinished
Это делает это:
Task Load (1.3ms) SELECT `tasks`.* FROM `tasks` WHERE `tasks`.`project_id` IN (12, 7, 13, 15, 14, 10, 16, 17, 9, 2, 3)
Task Load (0.4ms) SELECT `tasks`.* FROM `tasks` WHERE `tasks`.`project_id` = 12 AND `tasks`.`completed_at` IS NULL
Task Load (0.3ms) SELECT `tasks`.* FROM `tasks` WHERE `tasks`.`project_id` = 7 AND `tasks`.`completed_at` IS NULL
Task Load (0.6ms) SELECT `tasks`.* FROM `tasks` WHERE `tasks`.`project_id` = 13 AND `tasks`.`completed_at` IS NULL
etc.
Что нужно сделать, это получить задачисотрудник:
Employee
Projects
Tasks
Какими должны быть задачи, которые были внутренне объединены в запросе проектов.