rails mongoid明确的标准

Dip*_*pil 6 ruby ruby-on-rails mongoid ruby-on-rails-3

Mongoid :: Paranoia为生成标准的模型添加默认范围

#<Mongoid::Criteria
  selector: {:deleted_at=>{"$exists"=>false}},
  options:  {},
  class:    Line,
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

我可以找到生成的Model.deleted的已删除文档,

#<Mongoid::Criteria
  selector: {:deleted_at=>{"$exists"=>true}},
  options:  {},
  class:    Line,
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

我如何覆盖这个,以便我可以搜索已删除和未删除的文档.

PS Model.unscoped不起作用

rub*_*ish 5

试试这个(它的黑客行为):

class User
  include Mongoid::Document
  include Mongoid::Paranoia

  def self.ignore_paranoia
    all.tap {|criteria| criteria.selector.delete(:deleted_at)}
  end
end

# ignore paranoia is defined on model, so can't chain it to criteria or scopes
# but it returns criteria, so can chain other scope and criteria to it
User.ignore_paranoia.some_scope.where(:whatever => "my_custom_value")
Run Code Online (Sandbox Code Playgroud)