Ich habe ein Benutzermodell und der Benutzer hat eine Beziehung, die has_many Haustiere hat. Ich möchte in der Lage, eine Activerecord-Abfrage zu schreiben, wo ich alle Benutzer mit einem Haustier auswählen können, die keine pet.name von „fluffy“Ruby on Rails ActiveRecord Abfrage mit einem Join
hat Was ist der effizienteste Weg, dies mit Active zu schreiben? Mit gerade SQL es etwas wie folgt aussehen würde: die following part (auf joins
) auf den offiziellen RoR Richtlinien lesen möchten Sie vielleicht
User.joins(:pets).where("pets.name != 'fluffy'")
auch:
select id from users INNER JOIN pets ON u.id = pets.user_id WHERE pets.name != "fluffy"
Bitte korrigieren Sie mich, wenn ich falsch liege, aber wäre es nicht 'User.joins (: pet) ...' - Singular - für den Symbolparameter? – jeffdill2
@ jeffdill2 Das hängt davon ab, wie die Assoziation definiert ist. Wenn zum Beispiel der Benutzer 'has_one: pet' hätte, hättest du recht. –
@MikeC ah, direkt an. – jeffdill2