在视图中转换模型值

时间:2012-03-02 23:09:57

标签: ruby-on-rails ruby ruby-on-rails-3

en:
  activemodel:
    attributes:
      firm:
        status:
          active: active
          trial: trial
          trial-expired: trial is expired
          delinquent: delinquent
          inactive: inactive

在我的config / locals / en.yml中,我有以下内容用语言文件中的内容覆盖firm.status的值,但是我收到此错误:

 translation missing: en.trial

1 个答案:

答案 0 :(得分:1)

在您看来,您正在调用I18N.translate(@firm.status)(好吧,您可能只是致电t @firm.status,因为它看起来更漂亮,对吧?)

在这种情况下,由于状态为“试用”,因此与调用t "trial"相同,这就是为什么它正在寻找顶级翻译“en.trial”。如果你想要命名这个,最简单的方法就是调用t "activemodel.attributes.firm.status.#{@firm.status}",尽管这会很快变得烦人,你需要一些辅助方法来为你做这个。我也不相信你应该将“activemodel.attributes”作为范围的一部分。

考虑阅读http://guides.rubyonrails.org/i18n.html,特别是关于范围的4.1.1节和关于组织语言环境文件的3.5。