2017-05-25 7 views
0

私は、関連付けられたプロファイルモデル(ユーザに関する情報、すなわちhaircolorに使用される)を持つユーザモデル(認証/承認に使用される)を持っています。アサーションアトリビュートのモデルスコープ

特定の属性を持つすべてのユーザーを見つけるためのスコープを作成しようとしています。すべての暗い髪の人(髪の色は黒または茶色)、またはすべての明るい髪の人(髪の色は金色または銀)です。

私は黒い髪のプロファイルをすべて見つけることができますが、関連するユーザーを見つけるにはどうすればいいですか?

アプリ/モデル/ 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 

私が望むユーザーを求める方法を教えてください。または、スコープをユーザーに設定する必要がありますか?私はそれを試みましたが、それを正しく書く方法を理解できませんでした。

答えて

関連する問題