See All Options

Creates an alias between a single attribute's validations to another. This copies all messages, errors, etc., to the current attribute as well as its validation state (isValid, isValidating, etc.)

Examples

validator('alias', 'attribute')
validator('alias', {
  alias: 'attribute',
  firstMessageOnly: true
})
Show:
buildOptions
(
  • options
  • defaultOptions
  • globalOptions
)
Object

Inherited from Base but overwritten in addon/validators/alias.js:29

Normalized options passed in.

validator('alias', 'attribute')
  // Becomes
  validator('alias', {
    alias: 'attribute'
  })
  

Parameters:

Returns:

createErrorMessage
(
  • type
  • value
  • options
)
String
Used by all pre-defined validators to build an error message that is present in validators/message or declared in your i18n solution. If we extended our default messages to include uniqueUsername: '{username} already exists', we can use this method to generate our error message. `javascript validate(value, options) { const exists = false; // check with server if username exists... if(exists) { // The username key on the options object will be used to create the error message options.username = value; return this.createErrorMessage('uniqueUsername', value, options); } return true; } ` If we input johndoe and that username already exists, the returned message would be 'johndoe already exists'.

Parameters:

  • type String
    The type of message template to use
  • value Mixed
    Current value being evaluated
  • options Object
    Validator built and processed options (used as the message string context)

Returns:

String: The generated message
getValue () Mixed private
Wrapper method to value that passes the necessary parameters

Returns:

Mixed: value
test
(
  • type
  • args
)
Object
Easily compose complicated validations by using this method to validate against other validators. `javascript validate(value, options, ...args) { let result = this.test('presence', value, { presence: true }, ...args); if (!result.isValid) { return result.message; } // You can even test against your own custom validators result = this.test('my-validator', value, { foo: 'bar' }, ...args); if (!result.isValid) { return result.message; } result = this.test('number', value, { integer: true }, ...args); // You can easily override the error message by returning your own. if (!result.isValid) { return 'This value must be an integer!'; } // Add custom logic... return true; } `

Parameters:

  • type String
    The validator type (e.x. 'presence', 'length', etc.) The following types are unsupported: 'alias', 'belongs-to', 'dependent', 'has-many'
  • args ...args
    The arguments to pass through to the validator

Returns:

Object: The test result object which will contain isValid and message. If the validator is async, then the return value will be a promise.
validate
(
  • value
  • options
  • model
  • attribute
)

Inherited from Base but overwritten in addon/validators/alias.js:56

Parameters:

  • value Any
  • options Object
    • alias String

      The attribute to alias

    • firstMessageOnly Boolean

      If true, only returns the first error message of the aliased attribute and will not include validation state

  • model Object
  • attribute String
value
(
  • model
  • attribute
)
Used to retrieve the value to validate. This method gets called right before validate and the returned value gets passed into the validate method.

Parameters:

Returns:

The current value of model[attribute]

_testValidatorCache

Object private
Validators cache used by test api

_type

String private
Validator type

attribute

String
Attributed name of the model this validator is attached to

defaultOptions

Object
Default validation options for this specific attribute

errorMessages

Object
Error message object. Populated by validators/messages

globalOptions

Object
Global validation options for this model

isWarning

Boolean

model

Model
Model instance

options

Object
Options passed in to the validator when defined in the model