2017-05-25 97 views
0

我有一個用戶模型(用於認證/授權)與關聯的配置文件模型(用於關於用戶的信息,即頭髮顏色)。範圍關聯屬性模型

我想創建一個範圍來查找所有具有特定屬性的用戶。即:所有深色頭髮的人(頭髮顏色是黑色或棕色),或所有輕頭髮的人(頭髮顏色是金色或銀色)。

我可以找到所有配置文件的黑頭髮,但我如何找到關聯的用戶。

應用程序/模型/ user.rb:

class User < ActiveRecord::Base 
    has_one :profile 

應用程序/模型/ profile.rb

class Profile < ActiveRecord::Base 
    belongs_to :user 
    scope :dark_hair, -> { where('hair_color = ? or hair_color = ?', 'black', 'brown' } 
    scope :light_hair, -> { where('hair_color = ? or hair_color = ?', 'blond', 'silver' } 

所以我能找到的配置文件:

irb>> Profile.dark_hair 

但我做不到沒有得到用戶(這些都不起作用):

irb>> Profile.dark_hair.user 
irb>> Profile.dark_hair.users 
irb>> User.profile.dark_hair 

我該如何詢問我想要的用戶?或者範圍應該在用戶上?我試過,但無法弄清楚如何正確書寫它。

回答