You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Starting with Rails 6.1 ActiveModel::Error is an actual class:
> Active Model's errors are now objects with an interface that allows
> your application to more easily handle and interact with errors thrown
> by models. The feature[1] includes a query interface, enables more
> precise testing, and access to error details.
>
> [1] rails/rails#32313
As a result of this `resource.details` looks slightly different than in
previous versions and notably doesn't contain `:message` anymore, if
`object.errors.add(:something, message: 'some error')` was used to
specify a validation error.
https://github.com/rails/rails/blob/2a7ff0a5f54979b14b19f827c99295297dda411d/activemodel/lib/active_model/error.rb#L149
From the test suite:
```
note.errors.add(:title, message: 'has typos') if note.errors.key?(:title)
```
Rails 6.0:
```
{
:title=>[{:error=>:invalid, :value=>"BAD_TITLE"},
{:error=>{:message=>"has typos"}}],
:quantity=>[{:error=>:less_than, :value=>109, :count=>100}]
}
```
Rails 6.1:
```
{
:title=>[{:error=>:invalid, :value=>"BAD_TITLE"},
{:error=>:invalid}],
:quantity=>[{:error=>:less_than, :value=>100, :count=>100}]
}
```
The patch addresses this change by merging the error.message into its detail.
0 commit comments