2011-01-23 3 views
1

활성 레코드 오류 메시지에서 human_readable 이름을 '검색'으로하고 싶은 Query 클래스가 있습니다. activerecord 현지화 트리가이 케이스를 어떻게 찾습니까?오류 메시지에서 activerecord 모델 이름 지역화

en: 
    activerecord: 
    models: 
     query: "Search" 
    errors: 
     models: 
     query: 
      attributes: 
      name: 
       unique_within_scope: "blah blah" 

및 속성 물건을 통해 작동합니다 :

나는 시도 모델에

errors.add(:name, I18n.t('activerecord.errors.models.query.attributes.name.unique_within_scope')) 

.

"검색 실패 저장 : 저쩌구"

대신 :

"쿼리 저장 실패 : ㅋ ㅋ ㅋ ㅋ"을

unique_within_scope가 될 것이기 그러나 나는 오류 메시지의 번역을 기대했다

지금 그대로입니다.

도움을 주시면 감사하겠습니다. 감사!

답변

1

실제로 작동했지만 서버를 다시 시작해야했습니다.

0

당신의 접근 방식이 청소기 것, 일을하면서 :

errors.add(:name, :unique_within_scope) 

을하고 기호에 전달하면 단순히, 즉 자원 문자열을

activerecord.errors.models.query.attributes.name.unique_within_scope 

을 정의, 그것은 가정이 그 리소스 키이며 리소스 번들에서 찾아 볼 것입니다.

또 다른 장점

당신은 또한

activerecord.errors.messages.unique_within_scope 

가 필요한 경우 다음 특정 모델에 대한 재정의 할 수 있습니다 (다른 모델 또는 다른 속성에 의해 사용)이 유형의 오류에 대한 기본 메시지를 설정하는 정의 할 수 있다는 것입니다.