diff options
author | Hugo Vacher <hugo.vacher@shopify.com> | 2019-02-27 09:42:02 -0500 |
---|---|---|
committer | Hugo Vacher <hugo.vacher@shopify.com> | 2019-03-04 16:54:06 -0500 |
commit | 2176f4b30c9f4ea57a0fd4182808976b64202ab0 (patch) | |
tree | 407021a9b7315525fc7ec4c1b3fdeb7bb19db7a3 /activerecord/test/cases/validations | |
parent | d333d85254d27cd572e6ecce8ee850c107a4f340 (diff) | |
download | rails-2176f4b30c9f4ea57a0fd4182808976b64202ab0.tar.gz rails-2176f4b30c9f4ea57a0fd4182808976b64202ab0.tar.bz2 rails-2176f4b30c9f4ea57a0fd4182808976b64202ab0.zip |
Fall back to parent locale before it falls back to the :errors namespace
Diffstat (limited to 'activerecord/test/cases/validations')
-rw-r--r-- | activerecord/test/cases/validations/i18n_generate_message_validation_test.rb | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/activerecord/test/cases/validations/i18n_generate_message_validation_test.rb b/activerecord/test/cases/validations/i18n_generate_message_validation_test.rb index 703c24b340..993c201f03 100644 --- a/activerecord/test/cases/validations/i18n_generate_message_validation_test.rb +++ b/activerecord/test/cases/validations/i18n_generate_message_validation_test.rb @@ -4,16 +4,20 @@ require "cases/helper" require "models/topic" class I18nGenerateMessageValidationTest < ActiveRecord::TestCase + class Backend < I18n::Backend::Simple + include I18n::Backend::Fallbacks + end + def setup Topic.clear_validators! @topic = Topic.new - I18n.backend = I18n::Backend::Simple.new + I18n.backend = Backend.new end def reset_i18n_load_path @old_load_path, @old_backend = I18n.load_path.dup, I18n.backend I18n.load_path.clear - I18n.backend = I18n::Backend::Simple.new + I18n.backend = Backend.new yield ensure I18n.load_path.replace @old_load_path @@ -83,4 +87,16 @@ class I18nGenerateMessageValidationTest < ActiveRecord::TestCase assert_equal "Custom taken message", @topic.errors.generate_message(:title, :taken, value: "title") end end + + test "activerecord attributes scope falls back to parent locale before it falls back to the :errors namespace" do + reset_i18n_load_path do + I18n.backend.store_translations "en", activerecord: { errors: { models: { topic: { attributes: { title: { taken: "custom en message" } } } } } } + I18n.backend.store_translations "en-US", errors: { messages: { taken: "generic en-US fallback" } } + + I18n.with_locale "en-US" do + assert_equal "custom en message", @topic.errors.generate_message(:title, :taken, value: "title") + assert_equal "generic en-US fallback", @topic.errors.generate_message(:heading, :taken, value: "heading") + end + end + end end |