Получить последнюю запись из зависимой таблицы на основе условий в рельсах - PullRequest
0 голосов
/ 30 марта 2019

У меня в приложении есть две таблицы.

  1. tasks
  2. tasks_statuses

Ниже приведены записи

таблица задач id task_name date 1 A 2019-03-30 2 B 2019-03-30 3 C 2019-03-30

таблица задач_статусов id task_id status_id 1 1 1 2 1 2 3 1 3 4 2 1 5 1 4 6 2 2 Status Id and there meaning 1 Started 2 Running 3 Pause 4 Complete

Теперь, если я буду искать с помощью status_id 2 (Выполняется), в этом случае task_id2 должно быть возвращено, если я ищу с помощью status_id 4 (Завершено), в этом случае task_id 1 должно быть возвращено

Может кто-нибудь помочь, как добиться этого?

Заранее спасибо.

1 Ответ

0 голосов
/ 31 марта 2019

Я могу достичь с помощью

tasks = tasks.joins (: task_statuses) .where ('task_statuses.status_id =? AND task_statuses.status_id = (SELECT max (status_id) из task_statuses гдеtask_statuses.task_id = tasks.id) ', params [: status_id])

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