2016-07-22 5 views
0

Mit folgendem ModellActive umfassen oder has_one Aufzeichnungen auf dem

user.rb

# Columns 
# job_title :string 
# (..) 

has_one :spec 

spec.rb

# Columns 
# org_unit :string 
# department :string 
# room_number :string 

belongs_to :user 

.. Ich bin in der Lage zu schreiben beitreten:

irb(main):005:0> user.spec.department 
    Spec Load (0.0ms) SELECT "specs".* FROM "specs" WHERE "specs"."user_id" = ? 
    LIMIT ? [["user_id", 1], ["LIMIT", 1]] 
=> front-end 

Aber jetzt möchte ich als tun Suche in beiden Klassen wie:

User.where(job_title: "developer").where(self.spec.department: "front-end") 

Gibt es eine Möglichkeit, das zu tun?

Antwort

3

Versuchen:

User.where(job_title: "developer").joins(:spec).where(specs: {department: "front-end"}) 
+0

Rechts. Bearbeitete meine Antwort. – lunr

+0

Lesbare und exakt funktionierende Lösung. Vielen Dank! –