How can I skip the default scope for relations in mongoid?
The trashable concern implements a soft-delete on the model, also it adds the following
field :d_at, type: DateTime
default_scope -> { where(d_at: nil) }
If a brand gets trashed I still want to have it available when I load a product that has a reference to that brand These are the model definitions
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
Example:
product = Product.find([id])
puts product.brand.inspect #This brand is soft-deleted and not fetched because of the default scope
This works, but it breaks more then it fixes
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