2011-04-27 3 views
1

나는 payment_status 속성을 가진 모델 송장을 가지고 있습니다. payment_status는 고정 된 값으로, 번역을 로켈 파일에 저장하려는 unpayed | partial_payed | payed입니다. 나는 모델 로컬 파일에 그것을 가지고 좋은 것 thougt 지금모델 속성 값 변환을 저장할 위치

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

내가 할 수있는 그것과 같은 날이

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

같은 마지막 송장 번역 PAYMENT_STATUS 값을 얻을 많은 사람들이 타이핑을해야 할 것입니다. 아마도이 방법을 사용하여 번역을 할 수있는 방법이 있습니까?

답변

0

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 

목표에 도달 했습니까?

+0

확실하지 않습니까? https://github.com/openteam/has_enum - easyenum에는 has_enum 메소드가 없습니다. – toy

+0

http://rubygems.org/gems/easy_enum 하나를 찾았습니다. 번들 후에 인보이스 클래스에 추가하면 NameError : 초기화되지 않은 상수가 나타납니다. EasyEnum :: ClassMethods :: Enum – toy

+0

ok 플러그인으로 설치되었습니다. – toy