模块:Mongoid::Scopeable::ClassMethods
- 定义于:
- lib/mongoid/scopable.rb
实例方法摘要折叠
-
# default_scopeable? ⇒ true | false
该类是否能够应用默认作用域?
-
#default_scope(value = nil, &block) ⇒ Proc
为模型添加默认作用域。
-
#queryable ⇒ Criteria
private
获取一个 Queryable,它可以是作用域堆栈上的最后一个,也可以是新的。
-
#范围(名称, 值, 区块(&B)) ⇒ 对象
创建可从类级别访问或通过提供的名称链接到条件的范围。
-
#scoped (options = nil) ⇒ Criteria
获取具有正常作用域的文档条件。
-
#作用域⇒ 哈希
返回为此类定义的所有作用域的哈希值,包括在祖先类上定义的作用域。
-
# unscoped ⇒ Criteria |对象
在不应用任何范围的情况下获取条件。
-
# with_default_scope ⇒ Criteria (条件:#criteria)
获取应用了默认范围的条件(如果可能)。
-
# with_scope (criteria) ⇒ Criteria
将提供的条件推入作用域堆栈,并在生成提供的区块后将其删除。
-
# without_default_scope ⇒ 对象
在不应用默认作用域的情况下执行区块。
实例方法详细信息
# default_scopeable? ⇒ true | false
该类是否能够应用默认作用域?
90 91 92 |
# File 'lib/mongoid/scopable.rb', 第90行 def default_scopeable? default_scoping? && !线程化.without_default_scope?(self) end |
# default_scope (value = nil, &block) ⇒ Proc
为模型添加默认作用域。 除非指定了 #unscoped,否则此范围将应用于所有条件。
78 79 80 81 82 |
# File 'lib/mongoid/scopable.rb', 第78行 def default_scope(值 = nil, 和块) 值 = proc(和块) if block_given? check_scope_validity(值) self.default_scoping = process_default_scope(值) end |
#queryable ⇒ Criteria
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
获取一个 Queryable,它可以是作用域堆栈上的最后一个,也可以是新的。
102 103 104 105 106 |
# File 'lib/mongoid/scopable.rb', 第102行 def 可查询 Crit = 线程化.current_scope(self) || 条件.new(self) Crit. = true if Crit.klass. && !Crit.klass.循环? Crit end |
#范围(名称, 值, 区块(&B)) ⇒对象
创建可从类级别访问或通过提供的名称链接到条件的范围。
127 128 129 130 131 132 133 134 135 136 |
# File 'lib/mongoid/scopable.rb', 第127行 def 范围(名称, 值, 和块) 标准化 = 名称.to_sym check_scope_validity(值) check_scope_name(标准化) _declared_scopes[标准化] = { 范围: 值, 扩展名: 模块.new(和块) } define_scope_method(标准化) end |
#scoped (options = nil) ⇒ Criteria
注意:
这将强制应用默认范围。
获取具有正常作用域的文档条件。
153 154 155 |
# File 'lib/mongoid/scopable.rb', 第153行 def 作用域( = nil) 可查询.作用域() end |
#作用域⇒哈希
返回为此类定义的所有作用域的哈希值,包括在祖先类上定义的作用域。
48 49 50 51 52 53 54 |
# File 'lib/mongoid/scopable.rb', 第48行 def scopes defined_scopes = {} 祖先.reverse_each do |klass| defined_scopes.合并!(klass._declared_scopes) if klass.respond_to?(:_declared_scopes) end defined_scopes.冻结 end |
# unscoped ⇒ Criteria |对象
注意:
这将强制删除默认范围以及使用 .with_scope 应用的任何范围。
在不应用任何范围的情况下获取条件。
172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/mongoid/scopable.rb', 第172行 def 未限定作用域 if block_given? without_default_scope do with_scope(nil) do 产量(self) end end else 可查询.未限定作用域 end end |
# with_default_scope ⇒ Criteria也称为: criteria
获取应用了默认范围的条件(如果可能)。
190 191 192 |
# File 'lib/mongoid/scopable.rb', 第190行 def with_default_scope 可查询.with_default_scope end |
# with_scope (criteria) ⇒ Criteria
将提供的条件推入作用域堆栈,并在生成提供的区块后将其删除。
204 205 206 207 208 209 210 211 212 |
# File 'lib/mongoid/scopable.rb', 第204行 def with_scope(条件) 上一个 = 线程化.current_scope(self) 线程化.set_current_scope(条件, self) 开始 产量 条件 确保 线程化.set_current_scope(上一个, self) end end |
# without_default_scope ⇒对象
在不应用默认作用域的情况下执行区块。
222 223 224 225 226 227 |
# File 'lib/mongoid/scopable.rb', 第222行 def without_default_scope 线程化.begin_ without_default_scope(self) 产量 确保 线程化.exit_Without_default_scope(self) end |