模块:Mongoid::Extensions::Hash

定义于:
lib/mongoid/extensions/hash.rb

Overview

为 Hash 类添加类型转换行为。

在命名空间下定义

模块: 类方法

实例方法摘要折叠

实例方法详细信息

# __consolidate__ (klass) ⇒哈希

已弃用。

将哈希中的键/值合并到原子 $设立下。 已弃用。 这从未打算成为公共API ,一旦最终删除此方法,其功能将不再公开。

例子:

合并哈希值。

{ name: "Placebo" }.__consolidate__

返回:

  • (哈希)

    新的合并哈希值。



45
46
47
# File 'lib/mongoid/extensions/hash.rb', line 45

def __consolidate__(klass)
  Mongoid::AtomicUpdatePreparer.准备(self, klass)
end

# __evolve_object_id__哈希

如果哈希中的每个值可转换,则将其转换为对象ID。

例子:

转换哈希值。

{ field: id }.__evolve_object_id__

返回:

  • (哈希)

    转换后的哈希值。



16
17
18
# File 'lib/mongoid/extensions/hash.rb', line 16

def __evolve_object_id__
  transform_values!(:__evolve_object_id__)
end

# __mongoize_object_id__哈希

如果哈希值可转换,则将哈希中的每个值 Mongoizes 为对象ID。

例子:

转换哈希值。

{ field: id }.__mongoize_object_id__

返回:

  • (哈希)

    转换后的哈希值。



26
27
28
29
30
31
32
# File 'lib/mongoid/extensions/hash.rb', line 26

def __mongoize_object_id__
  if id = self[' $oid ']
    BSON::ObjectId.from_string(id)
  else
    transform_values!(:__mongoize_object_id__)
  end
end

# delete_id对象

已弃用。

从哈希中删除ID值。

例子:

删除ID值。

{}.delete_id

返回:

  • ( Object )

    已删除的值,或 nil。



57
58
59
# File 'lib/mongoid/extensions/hash.rb', line 57

def delete_id
  删除(" _id ") || 删除(:_id) || 删除(" ID ") || 删除(:id)
end

#extract_id对象

已弃用。

从此哈希中获取ID属性,无论它是否以下划线为前缀或是一个符号。

例子:

提取 ID。

{ :_id => 1 }.extract_id

返回:

  • ( Object )

    该 ID 的值。



70
71
72
# File 'lib/mongoid/extensions/hash.rb', line 70

def Extract_id
  self[" _id "] || self[:_id] || self[" ID "] || self[:id]
end

# mongoize哈希| nil

将对象从我们处理的Ruby类型转换为mongo友好类型。

例子:

将对象 Mongoize。

object.mongoize

返回:

  • ( Hash | nil )

    对象mongoized 或 nil。



82
83
84
# File 'lib/mongoid/extensions/hash.rb', line 82

def mongoize
  ::哈希.mongoize(self)
end

#可调整大小?true

这个对象的大小可以改变吗?

例子:

哈希大小是否可调整?

{}.resizable?

返回:

  • ( true )

    true。



92
93
94
# File 'lib/mongoid/extensions/hash.rb', line 92

def 可调整大小?
  true
end

#to_criteriaCriteria

已弃用。

将此哈希转换为条件。 将遍历哈希中的每个键,这些键必须与条件对象上的方法相对应。 哈希还必须包含“klass”键。

例子:

将哈希转换为条件。

{ klass: Band, where: { name: "Depeche Mode" }.to_criteria

返回:



105
106
107
# File 'lib/mongoid/extensions/hash.rb', line 105

def to_criteria
  条件.from_hash(self)
end