Как я могу пропустить область по умолчанию для отношений в монгоиде?
Проблема с мусором реализует мягкое удаление модели, а также добавляет следующее
field :d_at, type: DateTime
default_scope -> { where(d_at: nil) }
Если бренд попадает в корзину, я все равно хочу, чтобы он был доступен, когда я загружаю продукт, который имеет ссылку на этот бренд. Вот определения модели.
class Product
include Mongoid::Document
field :title, type: String
belongs_to :brand, class_name: 'Brand'
end
class Brand
include Mongoid::Document
include Concerns::Trashable
field :title, type: String
end
Пример:
product = Product.find([id])
puts product.brand.inspect #This brand is soft-deleted and not fetched because of the default scope
Это работает, но больше ломает, чем исправляет
class Product
include Mongoid::Document
field :title, type: String
belongs_to :brand, class_name: 'Brand'
#unscope relation to brand
def brand
Brand.unscoped.find(self.brand_id)
end
end
Product.unscoped
должен возвращать все записи о продуктах без применения какой-либо области действия. - person MrYoshiji   schedule 22.10.2014Brand.unscoped.where(product_id: product.id)
? - person MrYoshiji   schedule 22.10.2014default_scope
: rails-bestpractices.com/posts/806 -default_scope-is-evil - person MrYoshiji   schedule 22.10.2014