2016-07-22 61 views
0

HAS_ONE記錄用下面的模型ActiveRecord的包括或加入在哪裏

user.rb

# Columns 
# job_title :string 
# (..) 

has_one :spec 

spec.rb

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

belongs_to :user 

...我能寫:

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 

但現在我想做在這兩個類似:

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

有沒有辦法做到這一點?

回答

3

嘗試:

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

權。編輯我的答案。 – lunr

+0

可讀且準確工作的解決方案。非常感謝你! –