J'essaie de comprendre comment créer des modèles ActiveRecord avec les associations qui peuvent donner les mêmes résultats que cette requête SQL:Comment créer des modèles Rails avec plusieurs associations/jointures complexes?
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';
La structure de la table est la suivante, et prend chaque table a une id
par ActiveRecord normale Convention:
comptes
id: int
person_id: int
connexion: string
personnes
id: int
prenom: 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_address: string
email_address_types
id: int
email_address_type: string
J'ai besoin que les modèles soient pleinement fonctionnels, et non limités par des choses comme : find_by_sql.
Comment créer les modèles associés qui rendent cela possible?
Merci!
Chris Benson
[email protected]
Merci, mais je l'ai déjà fait. Familier avec tous - belongs_to, has_one, HABTM, HM: T. Déjà les utiliser tous, mais ne peut pas comprendre comment faire fonctionner cette situation correctement. N'a pas trouvé d'exemples sur le web qui répondent aux jointures de cette complexité. Pourrait vraiment utiliser un exemple de code de modèle qui montre au moins 4-5 tables normalisées jointes et les utilise toutes dans une requête standard. – Chris
Édité ma réponse (je ne sais pas si vous seriez averti à ce sujet). – Trevoke