类:Mongoid::Fields::Standard

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
定义于:
lib/mongoid/fields/standard.rb

Overview

表示标准字段定义(名称、类型等),用于对 Mongoid 持久保存的BSON文档实施一致的模式结构。

直接已知子类

加密、外本地化

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize (name, options = {}) ⇒标准

使用名称和可选附加选项创建新字段。

例子:

创建新字段。

Field.new(:name, :type => String)

参数:

  • 选项 哈希 (默认为: {}

    字段选项。

选项哈希 ( options ):

  • :type ( class )

    字段的类。

  • :default 对象

    字段的默认值。

  • :label string

    字段的标签。



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/mongoid/fields/standard.rb', line 71

def 初始化(名称, 选项 = {})
  @name = 名称
  @options = 选项
  @label = 选项[:label]
  @default_val = 选项[:default]

  # @todo:Durran,更改4.0中的 API 以将类作为参数。
  # 在此暂时解决 # 2529问题,而不更改
  # 构造函数签名。
  if default_val.respond_to?(:call)
    define_default_method(选项[:klass])
  end
end

实例属性详细信息

# default_val对象

定义文档中已定义字段的行为。 为实例变量设置读取器。



15
16
17
# File 'lib/mongoid/fields/standard.rb', line 15

def default_val
  @default_val
end

#标签对象

定义文档中已定义字段的行为。 为实例变量设置读取器。



15
16
17
# File 'lib/mongoid/fields/standard.rb', line 15

def 标签
  @label
end

#名称">对象

定义文档中已定义字段的行为。 为实例变量设置读取器。



15
16
17
# File 'lib/mongoid/fields/standard.rb', line 15

def 名称
  @name
end

# options对象

定义文档中已定义字段的行为。 为实例变量设置读取器。



15
16
17
# File 'lib/mongoid/fields/standard.rb', line 15

def 选项
  @options
end

实例方法详细信息

# add_atomic_changes (文档, name, key, mods, new, old) ⇒对象

为此类可调整大小的字段添加原子更改。

字段.add_atomic_changes(doc, “key”, {}, [], [])

例子:

添加原子更改。

参数:

  • 文档 (文档)

    要添加到的文档。

  • 名称 ( string )

    字段的名称。

  • key ( string )

    字段的原子位置。

  • mods (哈希)

    当前的修改。

  • new ( Array )

    要添加的新元素。

  • ( Array )

    旧元素被删除。



30
31
32
# File 'lib/mongoid/fields/standard.rb', line 30

def add_atomic_changes(文档, 名称, key, mods, new, )
  mods[key] = new
end

#关联">元数据

如果字段是外键,则获取该字段的元数据。

例子:

获取元数据。

field.

返回:

  • (Metadata)

    关联元数据。



121
122
123
# File 'lib/mongoid/fields/standard.rb', line 121

def 关联
  @association ||= 选项[:association]
end

# eval_default (doc) ⇒对象

计算默认值并将其返回。 如有必要,将处理序列化、过程调用和复制。

例子:

计算默认值。

field.eval_default(document)

参数:

  • doc (文档)

    字段所属的文档。

返回:

  • ( Object )

    序列化后的默认值。



43
44
45
46
47
48
49
# File 'lib/mongoid/fields/standard.rb', line 43

def eval_default(doc)
  if 字段 = doc.__selected_fields
    valued_default(doc) if 包括在内?(字段)
  else
    valued_default(doc)
  end
end

# foreign_key?true | false

该字段是外键吗?

例子:

该字段是外键吗?

field.foreign_key?

返回:

  • ( true | false )

    如果字段是外键。



57
58
59
# File 'lib/mongoid/fields/standard.rb', line 57

def foreign_key?
  false
end

#惰性?true | false

该字段是否执行延迟默认评估?

例子:

该字段是否为惰性字段?

field.lazy?

返回:

  • ( true | false )

    如果字段为惰性字段。



91
92
93
# File 'lib/mongoid/fields/standard.rb', line 91

def 懒?
  false
end

# localize_present?true | false

是否存在本地化字段强制值?

例子:

是否存在本地化字段强制值?

field.localize_present?

返回:

  • ( true | false )

    如果该字段强制为“present”。



111
112
113
# File 'lib/mongoid/fields/standard.rb', line 111

def localize_present?
  false
end

#已本地化?true | false

字段是否已本地化?

例子:

该字段是否已本地化?

field.localized?

返回:

  • ( true | false )

    如果字段已本地化。



101
102
103
# File 'lib/mongoid/fields/standard.rb', line 101

def 本地化?
  false
end

# object_id_field?true | false

该字段是 BSON::ObjectId 吗?

例子:

该字段是 BSON::ObjectId 吗?

field.object_id_field?

返回:

  • ( true | false )

    如果字段是BSON::ObjectId。



131
132
133
# File 'lib/mongoid/fields/standard.rb', line 131

def object_id_field?
  @object_id_field ||= (类型 == BSON::ObjectId)
end

# pre_processed?true | false

该字段是否会预处理其默认值?

例子:

该字段是否对默认进行预处理?

field.pre_processed?

返回:

  • ( true | false )

    如果字段的默认是预处理的。



141
142
143
144
# File 'lib/mongoid/fields/standard.rb', line 141

def pre_processed?
  @pre_processed ||=
    (选项[:pre_processed] || (default_val && !default_val.is_a?(::Proc)))
end

# type = "Class"

获取此字段的类型 - 从类名推断。

例子:

获取类型。

field.type

返回:

  • ( class )

    类的名称。



152
153
154
# File 'lib/mongoid/fields/standard.rb', line 152

def 类型
  @type ||= 选项[:type] || 对象
end