Как сортировать/упорядочивать данные из нескольких моделей?

Я пытаюсь создать отчет, в котором перечислены самые последние изменения доходов. Я пытаюсь определить лучший способ сортировки (платежи, возвраты, сборы и кредиты) самых последних изменений, разбить их на страницы и отобразить для пользователя.

Эти элементы представлены в 4 разных и не связанных между собой моделях (оплата, возврат, комиссия и кредит). Есть ли способ запросить это из базы данных?

Можете ли вы уточнить связь между каждой моделью?

MrYoshiji 08.03.2019 18:12

Кроме того, хотите ли вы иметь список последних измененных записей, которые относятся к Payment, Refund, FeeCharge или Credit? или один список для каждого типа?

MrYoshiji 08.03.2019 18:13

это легко с STI (наследование одной таблицы)

phoet 08.03.2019 20:37

Отношения между моделями отсутствуют. И я хотел бы иметь один список, содержащий либо платежи, возвраты, сборы или кредиты. @MrYoshiji

Jeffrey Goodall 12.03.2019 14:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
53
1

Ответы 1

Нет простого способа реализовать это с помощью Rails. В конце концов, ИППП — это вариант, но наследование — не всегда правильный путь (см. «Наследование против композиции»).

Один из способов увидеть это состоит в том, что все 4 разные модели используют один и тот же беспокойство: их можно получить на основе некоторого поля (в вашем случае с помощью updated_at).

Имея это в виду, вы можете создать представление SQL, чтобы инкапсулировать эту проблему. Это представление будет выполнять UNION между каждой таблицей и выставлять поля. Затем вы можете создать модель Rails только для чтения, чтобы представить строку из этого представления и просто выполнить запрос через ActiveRecord.

Дайте мне знать, интересен ли вам этот вариант и нужен ли вам конкретный пример.

Другие вопросы по теме