如何调用locales中定义的flash消息

时间:2013-08-07 10:22:37

标签: ruby-on-rails internationalization

我在my_message中有一条名为config/locales/post.en.yml的邮件,如下所示:

en:
  post:
    show:
      my_message: "Post was successfully saved. And Boom!"

如何调用此方法:my_message用于控制器方法中的闪存?

class PostsController < ApplicationController
  def show
     flash[:error] = my_message
  end
end

2 个答案:

答案 0 :(得分:2)

尝试I18n.t帮助

flash[:error] = t('.my_message')

或者,如果这不起作用,请使用完整路径:

flash[:error] = t('post.show.my_message')

答案 1 :(得分:1)

在应用程序控制器rails 4中,在参数中发送您的语言环境,以便通过params [:locale]

在contoller中获取它
 before_action :set_locale  

 def set_locale  
   I18n.locale = params[:locale] || I18n.default_locale
 end

然后

flash[:error] = t('post.show.my_message')