Где хранить переводы значений атрибутов модели - PullRequest
1 голос
/ 27 апреля 2011

У меня есть модель счета с атрибутом payment_status. payment_status имеет фиксированные значения unpayed | частичный_платный | оплаченный, для которого я хочу сохранить переводы в файле локали. Я думаю, что было бы хорошо иметь его в локальном файле модели

de:
  activerecord:
    attributes:
      payment_status: Zahlstatus
      payment_status_values:
        unpayed: offen
        partial_payed: teilgezahlt
        payed: ausgeglichen

теперь я могу получить переведенное значение payment_status для последнего счета, как это

I18n.t Invoice.last.payment_status , :scope => "activerecord.attributes.invoice.payment_status_values"
=> "offen"

для меня это похоже на то, что вы часто набираете sopes, есть ли какой-нибудь метод определения объема для перевода или лучший способ сделать это вообще?

1 Ответ

0 голосов
/ 27 апреля 2011

Мы использовали плагин easy_enums от marcel.Ближе всего я нашел: 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

Достигло ли это вашей цели?

...