Active Model Error
Represents one single error
- A
- D
- F
- M
- N
- S
Constants
| CALLBACKS_OPTIONS | = | [:if, :unless, :on, :allow_nil, :allow_blank, :strict] |
| MESSAGE_OPTIONS | = | [:message] |
Attributes
| [R] | attribute | The attribute of |
| [R] | base | The object which the error belongs to |
| [R] | options | The options provided when calling |
| [R] | raw_type | The raw value provided as the second parameter when calling |
| [R] | type | The type of error, defaults to |
Class Public methods
new(base, attribute, type = :invalid, **options) Link
Source: show
# File activemodel/lib/active_model/error.rb, line 103 def initialize(base, attribute, type = :invalid, **options) @base = base @attribute = attribute @raw_type = type @type = type || :invalid @options = options end
Instance Public methods
details() Link
Returns the error details.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.details
# => { error: :too_short, count: 5 }
Source: show
# File activemodel/lib/active_model/error.rb, line 149 def details { error: raw_type }.merge(options.except(*CALLBACKS_OPTIONS + MESSAGE_OPTIONS)) end
full_message() Link
Returns the full error message.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.full_message
# => "Name is too short (minimum is 5 characters)"
Source: show
# File activemodel/lib/active_model/error.rb, line 159 def full_message self.class.full_message(attribute, message, @base) end
match?(attribute, type = nil, **options) Link
See if error matches provided attribute, type, and options.
Omitted params are not checked for a match.
Source: show
# File activemodel/lib/active_model/error.rb, line 166 def match?(attribute, type = nil, **options) if @attribute != attribute || (type && @type != type) return false end options.each do |key, value| if @options[key] != value return false end end true end
message() Link
Returns the error message.
error = ActiveModel::Error.new(person, :name, :too_short, count: 5)
error.message
# => "is too short (minimum is 5 characters)"
Source: show
# File activemodel/lib/active_model/error.rb, line 135 def message case raw_type when Symbol self.class.generate_message(attribute, raw_type, @base, options.except(*CALLBACKS_OPTIONS)) else raw_type end end
strict_match?(attribute, type, **options) Link
See if error matches provided attribute, type, and options exactly.
All params must be equal to Error’s own attributes to be considered a strict match.
Source: show
# File activemodel/lib/active_model/error.rb, line 184 def strict_match?(attribute, type, **options) return false unless match?(attribute, type) options == @options.except(*CALLBACKS_OPTIONS + MESSAGE_OPTIONS) end