在何处存储模型属性值转换

| 我有一个具有付款方式的发票模型。 payment_status具有固定的值unpayd | partial_payed | payed,我想将其翻译存储在语言环境文件中。 我想将它放在模型本地文件中会很好
de:
  activerecord:
    attributes:
      payment_status: Zahlstatus
      payment_status_values:
        unpayed: offen
        partial_payed: teilgezahlt
        payed: ausgeglichen
现在,我可以像这样获取最后一张发票的翻译后的payment_status-value
I18n.t Invoice.last.payment_status , :scope => \"activerecord.attributes.invoice.payment_status_values\"
=> \"offen\"
对我来说,看起来好像经常输入sopes,也许有一种确定范围的方法来获取翻译,或者根本上没有更好的方法吗?     
已邀请:
我们使用了来自marcel的easy_enums插件。我找到的最接近的是:https://github.com/mschuerig/easy_enums/ 语法是这样的。然后,您仅存储范围标识符的最后一部分。
  has_enum :shipping_mode, :default => :not_set, :fallback => :not_set do
    value :not_set
    value :address
    value :self_collect
    define_method(:localize) { I18n.t(\"models.payment.shipping_mode.#{self.id}\") }
  end
这符合您的目标吗?     

要回复问题请先登录注册