diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb index 8d28040c32cef..64b28f6def9f6 100644 --- a/activemodel/lib/active_model/errors.rb +++ b/activemodel/lib/active_model/errors.rb @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + require 'active_support/core_ext/array/wrap' require 'active_support/core_ext/string/inflections' require 'active_support/core_ext/object/blank' diff --git a/activemodel/test/cases/validations/i18n_validation_test.rb b/activemodel/test/cases/validations/i18n_validation_test.rb index 38844bb1fa15d..7dd82e711dd74 100644 --- a/activemodel/test/cases/validations/i18n_validation_test.rb +++ b/activemodel/test/cases/validations/i18n_validation_test.rb @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + require "cases/helper" require 'cases/tests_database' require 'models/person' @@ -41,6 +43,14 @@ def test_errors_add_on_blank_generates_message_with_custom_default_message @person.errors.add_on_blank :title, 'custom' end + def test_full_message_encoding + I18n.backend.store_translations('en', :errors => { + :messages => { :too_short => '猫舌' }}) + Person.validates_length_of :title, :within => 3..5 + @person.valid? + assert_equal ['Title 猫舌'], @person.errors.full_messages + end + def test_errors_full_messages_translates_human_attribute_name_for_model_attributes @person.errors.add(:name, 'not found') Person.expects(:human_attribute_name).with(:name, :default => 'Name').returns("Person's name")