ErrorsFullDetails
Adds a new method to ActiveModel::Errors to display messages with codes using details.
Usage
Add errors with codes to an object:
class Person < ApplicationRecord
validate :username_is_cool
validate :title_is_looking_good
validate :default_code
private
def username_is_cool
errors.add(:username, 'is not cool', code: 15)
end
def title_is_looking_good
errors.add(:title, 'is not looking good', code: '210')
end
def default_code
errors.add(:base, 'This error has a default code')
end
end
Call object.errors.full_details
to generate an array of error messages and codes:
[
{
message: "Username is not cool",
code: "15"
},
{
message: "Title is not looking good",
code: "210"
},
{
message: "This error has a default code",
code: "0"
}
]
Errors added without an error code will return '0'
as a default error code.
Installation
Add this line to your application's Gemfile:
gem 'errors_full_details', '~> 0.0.4'
And then execute:
$ bundle
License
The gem is available as open source under the terms of the MIT License.