Different nested validations should not be ignore [#3638 status:resolved]

This commit is contained in:
José Valim 2010-01-14 01:43:57 +01:00
parent 35933822de
commit 363545aa20
2 changed files with 10 additions and 1 deletions

View File

@ -260,7 +260,8 @@ module ActiveRecord
if reflection.options[:autosave]
association.errors.each do |attribute, message|
attribute = "#{reflection.name}.#{attribute}"
errors[attribute] << message if errors[attribute].empty?
errors[attribute] << message
errors[attribute].uniq!
end
else
errors.add(reflection.name)

View File

@ -794,6 +794,14 @@ class TestAutosaveAssociationOnAHasOneAssociation < ActiveRecord::TestCase
assert @pirate.errors[:catchphrase].any?
end
def test_should_not_ignore_different_error_messages_on_the_same_attribute
Ship.validates_format_of :name, :with => /\w/
@pirate.ship.name = ""
@pirate.catchphrase = nil
assert @pirate.invalid?
assert_equal ["can't be blank", "is invalid"], @pirate.errors[:"ship.name"]
end
def test_should_still_allow_to_bypass_validations_on_the_associated_model
@pirate.catchphrase = ''
@pirate.ship.name = ''