私は、関連付けられたプロファイルモデル(ユーザに関する情報、すなわち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
私が望むユーザーを求める方法を教えてください。または、スコープをユーザーに設定する必要がありますか?私はそれを試みましたが、それを正しく書く方法を理解できませんでした。
ありがとう!オリジナルでさえ、単純化されていないバージョンです。 – MERM