2016-04-07 8 views
1

Mein Active Query ist Note.joins(:user).where(category: "Actions") und seine Erzeugungs SQL als SELECT notes.* FROM notes INNER JOIN users ON users.id = notes.user_id WHERE notes.category = 'Actions'Wie Ergebnis der zweiten Tabelle zu erhalten, während Abfrage schließt sich in Schienen aktiven Datensatz

Ich möchte Daten von Nutzern Tisch bekommen nicht von Notizen Tabelle bedeutet, ich versuche, zu erzeugen sql als SELECT users.* FROM users INNER JOIN notes ON users.id = notes.user_id WHERE notes.category = 'Actions';

Was wäre die Active Record-Abfrage dafür.

Wenn ich User.joins(:notes).where(category: "Actions") tue dann löst es Fehler Mysql2::Error: Unknown column 'users.category' als Kategorie ist Attribut der Tabelle not der Tabelle der Benutzer.

Antwort

5

Versuchen Sie, diese -

User.joins(:notes).where(notes: {category: "Actions"}) 
+0

Ja, das ist es !! total funktioniert !!! Danke @dkp – Prem

+0

@ArvindMehra froh, dass es für Sie gearbeitet hat !! :) – dp7

+0

können Sie mir auch sagen, wie können wir bedingte Operatoren mit .where-Methode in AR übergeben. zB: 'Note.where (Noten: {feeling_score: 7})' gibt immer 'SELECT Noten. * FROM Noten WHERE Noten.feeling_score = 7' Wie kann ich Bedingungsoperatoren wie' <',' <= 'in übergeben Wo-Klausel. – Prem

Verwandte Themen