Я пытаюсь понять, как создавать модели ActiveRecord с ассоциациями, которые могут дать те же результаты, как это SQL запрос:Как создать модели Rails с несколькими сложными ассоциациями/объединениями?
SELECT login, first_name, last_name, email_address
FROM accounts
INNER JOIN people ON person.id = accounts.person_id
INNER JOIN email_address_people ON person.id = email_address_people.person_id
INNER JOIN email_addresses ON email_address.id = email_address_people.email_address_id
INNER JOIN email_address_types ON email_address_types.id = email_address_people.email_address_type_id
WHERE email_address_types.email_address_type = 'account';
Структура таблицы, как следует, и предполагается, каждая таблица имеет id
за нормальный ActiveRecord конвенции:
счета
ID: INT
person_id: INT
логин: строка
люди
ID: ИНТ
first_name: строка
last_name: строка
email_address_people
ID: ИНТ
person_id: INT
email_address_id: INT
email_address_type_id: Int
EMAIL_ADDRESSES
ID: ИНТ
email_address: струнный
email_address_types
ID: ИНТ
email_address_type: струнный
мне нужны модели, чтобы быть полностью функциональным, а не ограничивается вещами, как : find_by_sql.
Как создать связанные модели, которые делают это возможным?
Спасибо!
Крис Бенсон
[email protected]
Спасибо, но я уже это сделал. Знакомы со всеми из них - принадлежит_to, has_one, HABTM, HM: T. Уже используйте их все, но не можете понять, как сделать эту ситуацию правильной. Не нашли примеров в Интернете, которые согласуются с этой сложностью. Мог бы действительно использовать некоторый образец кода модели, который объединяет не менее 4-5 нормированных таблиц и использует их все в стандартном запросе. – Chris
Отредактировал свой ответ (не уверен, если вы будете предупреждены об этом). – Trevoke