mit habe ich eine Rails-Anwendung mit dem folgenden Setup:Rails 5 Abfrage, wenn sowohl einzelne als auch mehrere Assoziationsbeziehungen
class Organization < ApplicationRecord
has_many :user_orgs
has_many :users, :through => :user_orgs
end
class UserOrg < ApplicationRecord
# organization_id :integer
# user_id :integer
belongs_to :organization
belongs_to :user
end
class User < ApplicationRecord
# car_id :integer
has_many :user_orgs
has_many :organizations, :through => :user_orgs
belongs_to :car
end
class Car < ApplicationRecord
# brand :string
has_many :users
end
Was ich versuche zu tun, um eine Rails 5 Abfrage zu schreiben, so dass es alle Organisationen zurück wo ein bestimmtes Autoattribut gesetzt ist, dh alle Organisationen zurückgeben, wo es einen Benutzer gibt, der ein Auto mit einer bestimmten Marke hat.
Wie kann ich der Car-Klasse in der Organisation bei der Abfrage beitreten? Derzeit suche ich für Organisationen basierend auf User-Kriterien, indem Sie die folgenden Aktionen ausführen:
Organization.joins(:users).where("users.name = ?", name)
Aber ich möchte in der Lage als auch Auto Kriterien für die Abfrage hinzuzufügen.
verwenden, wie sie nur für Nutzer mit einem bestimmten Namen, nicht ein Auto mit einem bestimmten Namen suchen würde aussieht? – Hawkeye001
Ich habe meine Antwort aktualisiert ... bitte überprüfen – Milind
Sorry @Milind, ich hatte einen Fehler in meiner Frage (die Auto/Benutzer-Verbände wurden umgekehrt; behoben in der ursprünglichen Zusammenfassung jetzt), also basierend auf der tatsächlichen Struktur, würde diese Lösung nicht nicht bewerben. – Hawkeye001