instance method generate_message

Ruby on Rails edge

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.4 v8.0.5.1 v8.1.4 edge

Signature

generate_message(attribute, type = :invalid, options = {})

Translates an error message in its default scope

(`activemodel.errors.messages`).

Error messages are first looked up in `activemodel.errors.models.MODEL.attributes.ATTRIBUTE.MESSAGE`,
if it's not there, it's looked up in `activemodel.errors.models.MODEL.MESSAGE` and if
that is not there also, it returns the translation of the default message
(e.g. `activemodel.errors.messages.MESSAGE`). The translated model
name, translated attribute name, and the value are available for
interpolation.

When using inheritance in your models, it will check all the inherited
models too, but only if the model itself hasn't been found. Say you have
`class Admin < User; end` and you wanted the translation for
the `:blank` error message for the `title` attribute,
it looks for these translations:

* `activemodel.errors.models.admin.attributes.title.blank`
* `activemodel.errors.models.admin.blank`
* `activemodel.errors.models.user.attributes.title.blank`
* `activemodel.errors.models.user.blank`
* any default you provided through the `options` hash (in the `activemodel.errors` scope)
* `activemodel.errors.messages.blank`
* `errors.attributes.title.blank`
* `errors.messages.blank`

: (Symbol | String, ?untyped, ?untyped) -> untyped

Parameters

attribute req
type opt = :invalid
options opt = {}
Source
# File activemodel/lib/active_model/errors.rb, line 558
    def generate_message(attribute, type = :invalid, options = {})
      Error.generate_message(attribute, type, @base, options)
    end

Defined in activemodel/lib/active_model/errors.rb line 558 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveModel::Errors

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close