我正在使用 has_scope gem,我想用两个参数创建过滤——它可能是一个参数或两个参数。
我的模型(产品):
scope :brand, proc { |brand| joins(:product_values).where('product_values.value_id' => brand) }
scope :zamena, proc { |zamena| joins(:product_values).where('product_values.value_id' => zamena) }
控制器的索引动作:
@products = apply_scopes(Product).all
它有效,但只有一个:(
/products?brand=12 - Ok
/products?zamena=24 - Ok
/products?brand=12&zamena=24 - Fail (sorted only by 'zamena', not by both params)
第二。变体(也不起作用) 在我的控制器中:
query = Product.scoped
query = query.brand(params[:brand]) if params[:brand]
query = query.zamena(params[:zamena]) if params[:zamena]
@products = query.all
一个有效,但不能同时有效(0 个结果)。