Я пытаюсь выяснить, как создавать модели ActiveRecord с ассоциациями, которые могут дать те же результаты, что и этот запрос SQL:
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
логин: строка
people
id: int
first_name: string
last_name: string
email_address_people
id: int
person_id: int
email_address_id: int
email_address_type_id: int
email_addresses
id: int
email_адрес: строка
email_address_types
id: int
email_address_type: string
Мне нужно, чтобы модели были полностью функциональными и не ограничивались такими вещами, как : find_by_sql .
Как создать связанные модели, которыесделать это возможным?
Спасибо!
Крис Бенсон
chris@chrisbenson.com