帮助者翻译多个值

时间:2016-06-23 15:54:39

标签: ruby-on-rails

我需要创建一个帮助程序,它接受与用户相关的多个值并翻译它们并将它们作为字符串返回给我的视图。

我在考虑这样的事情:

在帮助者中:

def interests(user)
  @all_interests = user.interests
  @all_interests.each_with_index do |interest|
    t('user.#{interest}') + ", "
    if index == @all_interests.size - 1
      t('user.#{interest}') + "."
    end
  end  

在视图中:

<p> My interests are: <%= interests(@user) %> </p>

期望的结果将是例如:

  

我的兴趣是:工程,体育,园艺。

但此时它会返回如下数组:

  

我的兴趣是:[“工程”,“体育”,“园艺”]

编辑:所有值都在我的i18n文件中正确翻译。

2 个答案:

答案 0 :(得分:2)

您应该映射结果并将其加入&#39;,&#39;在你的情况下:

def interests(user)
  user.interests.map {|interest| t("user.#{interest}") }.join(', ')
end

顺便说一句,没有必要设置实例变量。辅助方法已经返回结果。

答案 1 :(得分:1)

更好地使用数组映射+连接:

def interests(user)
  user.interests.map{|i| t("user.#{i}")}.join(', ')
end  

并且在视野中:

<p> My interests are: <%= interests(@user) %>. </p>