为什么Rails I18n返回“翻译缺失:”但仍然显示消息?

时间:2016-07-22 08:48:12

标签: ruby-on-rails devise rails-i18n

我在Rails 4应用程序中使用Devise。我在登录后会显示一条flash消息。

#app/controllers/application_controller.rb
def after_sign_in_path_for(resource_or_scope)
  set_flash_message :alert, I18n.t( 'users.after_signin_msg')
end

我有一个翻译文件

#config/locales/users.en.yml
en:
  users: 
    after_signin_msg: "Hello and Welcome"

当用户登录时,显示的Flash消息为

translation missing: en.devise.sessions.user.Hello and Welcome

为什么Devise控制器会在翻译中显示?如果Rails正在寻找Devise翻译,为什么还会显示正确的消息?

如何删除translation missing文字?

1 个答案:

答案 0 :(得分:0)

在此遇到另一个devise翻译错误,并认为我会添加对我有用的解决方案。

ActionView::Template::Error (translation missing: en.devise.registrations.edit.back)

通过为单个实例更改t()-> I18n.t()来解决该问题,从而导致模板中出现问题。

有效,但不确定为什么有必要。

@ImranNaqvi在评论中建议了这一点:

@AndyHarvey,您是对的,亲爱的,我所做的几乎是I18n.t而不是t – ImranNaqvi '16 Jul 23'4:37