这是将enum翻译为使用I18n选择的最佳方法吗?

时间:2018-01-24 14:34:46

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

有没有更好的方法来编写此代码? 他目前正在为其正确的枚举创建一个带有翻译的哈希。

npm i -g whitesource

2 个答案:

答案 0 :(得分:1)

我更愿意使用enumerate_it gem代替上面的 我们可以使用此gem定义和使用translations。 也很简单,提供范围,帮助方法和易于重用的枚举

答案 1 :(得分:0)

Enumerize宝石或Translate Enum宝石是不错的选择。两者都允许您在本地化文件中声明翻译,从而允许翻译不同的语言。 两者在实现上都非常相似,我都用过,我之所以要使用一个而不是另一个是与其他gem集成。

“翻译”枚举gem的示例:

class Post < ActiveRecord::Base
  include TranslateEnum

  enum status: { published: 0, archive: 1 }
  translate_enum :status
end

在您的本地化文件中:

en:
  activerecord:
    attributes:
      post:
        status_list:
          published: Was published
          archive: Was archived