これに完全にこだわっていて、助けが必要です!
ユーザーに特定の設定を入力してもらい、それらの設定に基づいて各ユーザーに一連の結果を表示しています。
ユーザーとこれらのプリファレンスの間には HABTM 関係があります。
ユーザー.rb
has_many :userpreferences
has_many :preferences, through: :userpreferences
Preferences.rb
has_many :userpreferences
has_many :users, through: :userpreferences
ユーザー設定.rb
belongs_to :user
belongs_to :preference
現在、設定には「タグ」と呼ばれる特定の詳細をリストする属性があります。つまり、大きい、小さい、太いなどです。
各ユーザーの好みに基づいて (つまり、選択した好みのタグに基づいて) 各ユーザーのアイテムを表示したいと考えています。
今私はしようとしています:
current_user.preferences.all.each do |p|
query = p.tags.split(' ')
@items = Item.where{title.like_any query}
何らかの理由で、これは最初の優先順位のタグのみを照会します。
たとえば、好み 1 のタグが ["black", "leather", "suede"] で、好み 2 のタグが ["brown", "cloth"] の場合.......最初のセットのみクエリとして渡されます。