模块:Mongoid::Fields::Validator::Macro

扩展方式:
包含在:
定义于:
lib/mongoid/fields/validators/macro.rb

Overview

验证传递给字段宏的参数。

常量摘要折叠

OPTIONS =
[
  :as,
  :default,
  :identity,
  :label,
  :localize,
  :fallbacks,
  :association,
  :pre_processed,
  :subtype,
  :type,
  :overwrite,
  :encrypt
]

实例方法摘要折叠

实例方法详细信息

# validate (klass, name, options) ⇒对象

验证字段定义。

例子:

验证字段定义。

Macro.validate(Model, :name, { localized: true })

参数:

  • klass ( class )

    模型类。

  • 名称 (符号)

    字段名称。

  • 选项 (哈希)

    提供的选项。



35
36
37
38
39
# File 'lib/mongoid/fields/validators/macro.rb', line 35

def 验证(klass, 名称, 选项)
  validate_field_name(klass, 名称)
  validate_name_uniqueness(klass, 名称, 选项)
  validate_options(klass, 名称, 选项)
end

# validate_field_name (klass, name) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

确定字段名是否有效,如果无效则引发错误。

例子:

检查字段名称。

Macro.validate_field_name(Model, :name)

参数:

  • klass ( class )

    模型类。

  • 名称 (符号)

    字段名称。

引发:



68
69
70
71
72
73
74
# File 'lib/mongoid/fields/validators/macro.rb', line 68

def validate_field_name(klass, 名称)
  [名称, " #{ name } ? ".to_sym, " #{ name } = ".to_sym]. do |n|
    if Mongoid.破坏性字段.包括?(n)
      提高 Errors::InvalidField.new(klass, 名称, n)
    end
  end
end

# validate_relation (klass, name, options = {}) ⇒对象

验证关联定义。

例子:

验证关联定义。

Macro.validate(Model, :name)

参数:

  • klass ( class )

    模型类。

  • 名称 (符号)

    字段名称。

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

    提供的选项。



49
50
51
52
53
54
55
# File 'lib/mongoid/fields/validators/macro.rb', line 49

def validate_relation(klass, 名称, 选项 = {})
  [名称, " #{ name } ? ".to_sym, " #{ name } = ".to_sym]. do |n|
    if Mongoid.破坏性字段.包括?(n)
      提高 Errors::InvalidRelation.new(klass, n)
    end
  end
end