関連する 2 つの属性に基づいてレコードを検索しようとしています。関連にこれら 2 つのレコードが含まれている場合は、レコードを選択する必要があります。
これまでのところ、次のことを試しました-これは非常に悪い習慣に思えたので、使用を避けたいです。
@size = Spree::OptionValue.find(params[:size])
@color = Spree::OptionValue.find(params[:color])
vari = Spree::Variant.all
vari.each do |va|
if va.option_values.include?(@size && @color)
@variant = va
end
end
これまでのところ、私も試しました
@variant = Spree::Variant.all(:include => :option_values, :conditions => ['option_value.id = ?', params[:color])
これは進むべき道のようですが、結果を得るための正しい方法を理解できないようです。私が取得し続ける戻りエラーは次のとおりです。
ActiveRecord::StatementInvalid: PG::Error: エラー: テーブル "option_values" の FROM 句エントリがありません 行 1: ..._option_values_variants"."option_value_id" WHERE (option_val...
編集:
受け入れられた回答で与えられた大きな助けのおかげで、私はそれを機能させました:
Spree::Variant.joins(:option_values).where("spree_option_values.id in (?)", [size, color])