【发布时间】:2021-06-10 14:58:46
【问题描述】:
我有很多标签的产品模型
class Product < ApplicationRecord
has_and_belongs_to_many :tags
end
我将多个 where 条件应用于产品范围
@products = Product.includes(:tags).where(tags: { id: [1] })
@products = @products.where(tags: { id: [2] })
稍后在代码中我需要取消@products 关系的范围。但只是特定的条件组,而不是整个 where 子句。
@products = @products.somehow_i_dont_know_how_unscope(tags: { id: [2] })
assert_eqal Product.includes(:tags).where(tags: { id: [1] }), @products
根据业务逻辑,我无法在实际应用 where 条件之前进行此检查。以后有什么办法可以恢复这种情况吗?
【问题讨论】:
标签: ruby-on-rails rails-activerecord