Regression with how base errors messages are added to a model. Works correctly for both string error messages and symbol translated messages.
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
7008911222
commit
e8c064bbe0
|
@ -16,7 +16,7 @@ module ActiveModel
|
|||
end
|
||||
|
||||
def add_to_base(msg)
|
||||
ActiveSupport::Deprecation.warn "Errors#add_to_base(msg) has been deprecated, use Errors#[:base] << msg instead"
|
||||
ActiveSupport::Deprecation.warn "Errors#add_to_base(msg) has been deprecated, use Errors#add(:base, msg) instead"
|
||||
self[:base] << msg
|
||||
end
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ module ActiveModel
|
|||
defaults.flatten!
|
||||
|
||||
key = defaults.shift
|
||||
value = @base.send(:read_attribute_for_validation, attribute)
|
||||
value = (attribute != :base ? @base.send(:read_attribute_for_validation, attribute) : nil)
|
||||
|
||||
options = {
|
||||
:default => defaults,
|
||||
|
|
|
@ -83,10 +83,9 @@ class ValidationsTest < ActiveModel::TestCase
|
|||
r = Reply.new
|
||||
r.content = "Mismatch"
|
||||
r.valid?
|
||||
r.errors[:base] << "Reply is not dignifying"
|
||||
r.errors.add(:base, "Reply is not dignifying")
|
||||
|
||||
errors = []
|
||||
r.errors.to_a.each { |error| errors << error }
|
||||
errors = r.errors.to_a.inject([]) { |result, error| result + [error] }
|
||||
|
||||
assert_equal ["Reply is not dignifying"], r.errors[:base]
|
||||
|
||||
|
@ -95,6 +94,22 @@ class ValidationsTest < ActiveModel::TestCase
|
|||
assert_equal 2, r.errors.count
|
||||
end
|
||||
|
||||
def test_errors_on_base_with_symbol_message
|
||||
r = Reply.new
|
||||
r.content = "Mismatch"
|
||||
r.valid?
|
||||
r.errors.add(:base, :invalid)
|
||||
|
||||
errors = r.errors.to_a.inject([]) { |result, error| result + [error] }
|
||||
|
||||
assert_equal ["is invalid"], r.errors[:base]
|
||||
|
||||
assert errors.include?("Title is Empty")
|
||||
assert errors.include?("is invalid")
|
||||
|
||||
assert_equal 2, r.errors.count
|
||||
end
|
||||
|
||||
def test_errors_empty_after_errors_on_check
|
||||
t = Topic.new
|
||||
assert t.errors[:id].empty?
|
||||
|
|
Loading…
Reference in New Issue