diff options
author | lulalala <mark@goodlife.tw> | 2018-03-26 13:09:59 +0800 |
---|---|---|
committer | lulalala <mark@goodlife.tw> | 2019-03-31 22:59:12 +0800 |
commit | ea77205a9ff71ebd0dc7cf29e598ef126c9807f5 (patch) | |
tree | 88ced0b2f6e744fe4aef87faa2708d55cbf5bd9f /activemodel/test | |
parent | d9011e39357300fe78720227af4c13b4bc4ac4dd (diff) | |
download | rails-ea77205a9ff71ebd0dc7cf29e598ef126c9807f5.tar.gz rails-ea77205a9ff71ebd0dc7cf29e598ef126c9807f5.tar.bz2 rails-ea77205a9ff71ebd0dc7cf29e598ef126c9807f5.zip |
Add convenience method group_by_attribute
Many operations need grouping of errors by attributes, e.g. ActiveRecord::AutosaveAssociation#association_valid?
Refactor other methods using group_by_attribute
Diffstat (limited to 'activemodel/test')
-rw-r--r-- | activemodel/test/cases/errors_test.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb index a6fd95d7b1..58aa7ee147 100644 --- a/activemodel/test/cases/errors_test.rb +++ b/activemodel/test/cases/errors_test.rb @@ -494,6 +494,14 @@ class ErrorsTest < ActiveModel::TestCase assert_equal({ name: [{ error: :invalid }] }, person.errors.details) end + test "group_by_attribute" do + person = Person.new + error = person.errors.add(:name, :invalid, message: "is bad") + hash = person.errors.group_by_attribute + + assert_equal({ name: [error] }, hash) + end + test "dup duplicates details" do errors = ActiveModel::Errors.new(Person.new) errors.add(:name, :invalid) |