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

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

Overview

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

常量摘要折叠

OPTIONS =
%i[
  作为
  访问
  身份
  标签
  localize
  回退
  关联
  pre_processed
  子类型
  类型
  覆盖
  加密
]

实例方法摘要折叠

实例方法详细信息

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

验证字段定义。

例子:

验证字段定义。

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

参数:

  • klass ( class )

    模型类。

  • 名称 (符号)

    字段名称。

  • 选项 (哈希)

    提供的选项。



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

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 )

    模型类。

  • 名称 (符号)

    字段名称。

引发:



64
65
66
67
68
# File 'lib/mongoid/fields/validators/macro.rb', line 64

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

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

验证关联定义。

例子:

验证关联定义。

Macro.validate(Model, :name)

参数:

  • klass ( class )

    模型类。

  • 名称 (符号)

    字段名称。

  • 选项 (哈希)

    提供的选项。



47
48
49
50
51
# File 'lib/mongoid/fields/validators/macro.rb', line 47

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