Rails 4.1 +
Чтобы поднять i18n в переводе пропущенных исключений, вам нужно две вещи:
1) Инициализатор config/initializers/i18n_force_exceptions.rb
:
module I18n
class ForceMissingTranslationsHandler < ExceptionHandler
def call(exception, locale, key, options)
if Rails.env.test?
raise exception.to_exception
else
super
end
end
end
end
I18n.exception_handler = I18n::ForceMissingTranslationsHandler.new
2) Параметр конфигурации в config/environments/test.rb
(и других необходимых средах):
config.action_view.raise_on_missing_translations = true
Примечание. Параметр конфигурации необходим в дополнение к обработчику исключений, поскольку rails обертываетвызовы I18n.translate
в его представлении и помощники, предотвращающие срабатывание исключений.