以下问题:
我有一个产品的 ID 和两个用于选项值的 IDS。我想查找与产品 ID 和两个选项值 ID 匹配的变体。举个例子:
我有一个名为“Tshirt”的产品,我想要的是蓝色和大号的。
我的以下设置是:
产品.rb
class Product < ActiveRecord::Base
has_many :variants
end
变体.rb
class Variant < ActiveRecord::Base
belongs_to :product
has_and_belongs_to_many :option_values, :join_table => :spree_option_values_variants
end
option_values.rb
class OptionValue < ActiveRecord::Base
has_and_belongs_to_many :variants, :join_table => 'spree_option_values_variants', :class_name => "Spree::Variant"
end
现在,我有:
以顶部为例:
Spree::Variant.includes(:option_values).where(:spree_option_values => {:id => [color.id, size.id]}, :product_id => product.id)
这个艰难的让我回到了所有的变体,无论是大的还是蓝色的。我很坚强,我想要大而蓝色的变体。