Je suis un programmeur débutant, je fais des scripts shell depuis des années mais j'ai récemment entrepris une programmation OOP en utilisant Ruby et je crée une application Rails.Usng Rails Relations ActiveRecord
J'ai du mal à comprendre comment utiliser mes relations de modèle définies.
J'ai essayé de faire une recherche sur Google, mais tout ce que je peux trouver est essentiellement des feuilles de triche pour ce que has_many, belongs_to, etc. Ce truc est facile à définir & comprendre, d'autant plus que j'ai beaucoup travaillé directement avec SQL.
Ce que je ne comprends pas, c'est comment utiliser ces relations définies.
Dans mon cas, j'ai 3 modèles: Emplacements hôtes services
Relations (code non réel, juste pour le raccourcir):
Services
belongs_to :hosts
Hosts
has_many :services
belongs_to :locations
Locations
has_many :hosts
Dans ce cas, je veux être en mesure de afficher une colonne à partir des emplacements tout en travaillant avec les services. En SQL, il s'agit d'une jointure simple, mais je veux le faire de la manière Rails/Ruby, et aussi ne pas utiliser SQL dans mon code ou redéfinir mes jointures.
En outre, Seth a raison à propos des relations qui doivent être correctement pluralisées. De plus, votre requête de localisation sera probablement différente de «première», mais c'est une bonne illustration de la façon dont elle sera réalisée. –
Has_many à travers ne fonctionnera pas parce que la table de jointure n'appartient pas à chaque côté propriétaire ... – sethvargo
Pas vrai.Ça marche. Il génère cette requête: SELECT "services". * FROM "services" INNER JOIN "hosts" ON "services" .host_id = "hosts" .id OERE (("hosts" .location_id = 1)) –