Module: Mongoid::Fields::Validators::Macro

Extended by:
Macro
Included in:
Macro
Defined in:
build/mongoid-7.3/lib/mongoid/fields/validators/macro.rb

Overview

Validates the params passed to the field macro.

Constant Summary collapse

FIELD_TYPE_IS_SYMBOL =

The warning message to give when a field is of type Symbol.

Since:

  • 7.0.0

'The BSON symbol type is deprecated; use String instead'.freeze
OPTIONS =
[
  :as,
  :default,
  :identity,
  :label,
  :localize,
  :fallbacks,
  :association,
  :pre_processed,
  :subtype,
  :type,
  :overwrite
]

Instance Method Summary collapse

Instance Method Details

#validate(klass, name, options) ⇒ Object

Validate the field definition.

Examples:

Validate the field definition.

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

Parameters:

  • klass (Class)

    The model class.

  • name (Symbol)

    The field name.

  • options (Hash)

    The provided options.

Since:

  • 3.0.0



41
42
43
44
45
# File 'build/mongoid-7.3/lib/mongoid/fields/validators/macro.rb', line 41

def validate(klass, name, options)
  validate_field_name(klass, name)
  validate_name_uniqueness(klass, name, options)
  validate_options(klass, name, options)
end

#validate_field_name(klass, name) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Determine if the field name is valid, if not raise an error.

Examples:

Check the field name.

Macro.validate_field_name(Model, :name)

Parameters:

  • klass (Class)

    The model class.

  • name (Symbol)

    The field name.

Raises:



76
77
78
79
80
81
82
# File 'build/mongoid-7.3/lib/mongoid/fields/validators/macro.rb', line 76

def validate_field_name(klass, name)
  [name, "#{name}?".to_sym, "#{name}=".to_sym].each do |n|
    if Mongoid.destructive_fields.include?(n)
      raise Errors::InvalidField.new(klass, n)
    end
  end
end

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

Validate the association definition.

Examples:

Validate the association definition.

Macro.validate(Model, :name)

Parameters:

  • klass (Class)

    The model class.

  • name (Symbol)

    The field name.

  • options (Hash) (defaults to: {})

    The provided options.

Since:

  • 6.0.0



57
58
59
60
61
62
63
# File 'build/mongoid-7.3/lib/mongoid/fields/validators/macro.rb', line 57

def validate_relation(klass, name, options = {})
  [name, "#{name}?".to_sym, "#{name}=".to_sym].each do |n|
    if Mongoid.destructive_fields.include?(n)
      raise Errors::InvalidRelation.new(klass, n)
    end
  end
end