我在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
文字?
答案 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