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不起作用
试试这个(它的黑客行为):
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)
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |