Сортировка с данными из другой таблицы с использованием sort_by ruby ​​на рельсах - PullRequest
1 голос
/ 18 февраля 2011

У меня есть две модели: Todo и Duedate. Duedate имеет множество задач, а также Todo принадлежит Duedate. Таблица Duedates содержит идентификатор и запись типа данных «дата». Каждый объект Todo имеет столбец duedate_id, который соответствует идентификатору Duedate.

У Todo есть другие значения, такие как приоритет и завершенность, которые я сортирую по:

@todos = @todos.sort_by(&:priority)

Я хочу отсортировать @todos по дате, но я не уверен, как сказать sort_by использовать дату, связанную с duedate_id в таблице duedate. Я не могу просто сделать

@todos = @todos.sort_by(&:duedate_id)

потому что это будет просто сортировать @todos по дате, как она была введена в таблицу duedate, а не по дате, которой соответствует запись. Кто-нибудь может помочь?

Спасибо, Ross

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Вы используете сахарный метод symbol_to_proc. Вы можете использовать обычный старый аргумент блока для sort_by:

@todos = @todos.sort_by{ |todo| todo.duedate.date }
0 голосов
/ 22 апреля 2011

Почему у вас есть 2 модели, почему у вас просто нет поля duedate в вашей модели todo?

Если в вашей модели todo есть поле даты выполнения, вы можете определить область для сортировкиваши задачи.

...