diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-25 11:24:43 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-25 11:24:43 +0000 |
commit | 3eed3272d7fc79040b6eb3b8586be0d8875d8203 (patch) | |
tree | 6bf65567604faaded9a402b3a6307f96c6bae9b4 | |
parent | 55850818e36dce98061c3bbc56b41134f8f0e413 (diff) | |
download | rails-3eed3272d7fc79040b6eb3b8586be0d8875d8203.tar.gz rails-3eed3272d7fc79040b6eb3b8586be0d8875d8203.tar.bz2 rails-3eed3272d7fc79040b6eb3b8586be0d8875d8203.zip |
Fixed that validations didn't respecting custom setting for too_short, too_long messages #1437 [Marcel Molina]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1509 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | activerecord/CHANGELOG | 2 | ||||
-rwxr-xr-x | activerecord/lib/active_record/validations.rb | 10 | ||||
-rwxr-xr-x | activerecord/test/validations_test.rb | 9 |
3 files changed, 14 insertions, 7 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index b487f442b3..c7526beb83 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed that validations didn't respecting custom setting for too_short, too_long messages #1437 [Marcel Molina] + * Fixed that clear_association_cache doesn't delete new associations on new records (so you can safely place new records in the session with Action Pack without having new associations wiped) #1494 [cluon] * Fixed that calling Model.find([]) returns [] and doesn't throw an exception #1379 diff --git a/activerecord/lib/active_record/validations.rb b/activerecord/lib/active_record/validations.rb index d58502e98b..e42b306e10 100755 --- a/activerecord/lib/active_record/validations.rb +++ b/activerecord/lib/active_record/validations.rb @@ -213,12 +213,6 @@ module ActiveRecord :message => nil }.freeze - DEFAULT_SIZE_VALIDATION_OPTIONS = DEFAULT_VALIDATION_OPTIONS.merge( - :too_long => ActiveRecord::Errors.default_error_messages[:too_long], - :too_short => ActiveRecord::Errors.default_error_messages[:too_short], - :wrong_length => ActiveRecord::Errors.default_error_messages[:wrong_length] - ).freeze - ALL_RANGE_OPTIONS = [ :is, :within, :in, :minimum, :maximum ].freeze def validate(*methods, &block) @@ -404,7 +398,9 @@ module ActiveRecord # method, proc or string should return or evaluate to a true or false value. def validates_length_of(*attrs) # Merge given options with defaults. - options = DEFAULT_SIZE_VALIDATION_OPTIONS.dup + options = {:too_long => ActiveRecord::Errors.default_error_messages[:too_long], + :too_short => ActiveRecord::Errors.default_error_messages[:too_short], + :wrong_length => ActiveRecord::Errors.default_error_messages[:wrong_length]}.merge(DEFAULT_VALIDATION_OPTIONS) options.update(attrs.pop.symbolize_keys) if attrs.last.is_a?(Hash) # Ensure that one and only one range option is specified. diff --git a/activerecord/test/validations_test.rb b/activerecord/test/validations_test.rb index 2cce21597a..2ff618b0e6 100755 --- a/activerecord/test/validations_test.rb +++ b/activerecord/test/validations_test.rb @@ -493,6 +493,15 @@ class ValidationsTest < Test::Unit::TestCase end end + def test_validates_length_with_globaly_modified_error_message + ActiveRecord::Errors.default_error_messages[:too_short] = 'tu est trops petit hombre %d' + Topic.validates_length_of :title, :minimum => 10 + t = Topic.create(:title => 'too short') + assert !t.valid? + + assert_equal 'tu est trops petit hombre 10', t.errors['title'] + end + def test_validates_size_of_association assert_nothing_raised { Topic.validates_size_of :replies, :minimum => 1 } t = Topic.new('title' => 'noreplies', 'content' => 'whatever') |