Rails 3: порядок запросов ActiveRecord для нескольких таблиц, слияние - PullRequest
1 голос
/ 31 августа 2011

Событие имеет дату
Subevent assign_to: событие (не имеет собственной даты! Наследует ее через событие)

A Пользователь может участвовать в обоих событиях или Subevent независимо.

Теперь я хотел бы перечислить все участия пользователя, объединенные, упорядоченные по дате проведения события или Subevent (не имейте в виду свою дату). Как для этого нужно построить запрос ActiveRecord?

Событие и Subevent являются полиморфными «присутствующими». Есть таблица "Посещаемость" с Participable_type, Participable_id, user_id.

EDIT:

Я подумал, что эти отдельные запросы для каждого «посещаемости» выполняют свою работу, только их нужно объединить сейчас, чтобы объединить даты (Subevents между событиями при заказе):

@events = Event.joins(:attendances).where("attendances.attendable_type = ? AND attendances.user_id = ?", "Event", @user).order('events.startdate ASC')
@subevents = Subevent.joins(:attendances).includes(:event).where("attendances.attendable_type = ? AND attendances.user_id = ?", "Subevent", @user).order('events.startdate ASC, subevents.created_at ASC')
#=> Event 1
#   Event 2
#   Subevent 1
#   Subevent 2
#   …

Помощь все еще приветствуется, спасибо

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