2016-12-02 3 views
0

로케일 메시지 문자열에서 어떤 표현식을 평가해야합니다. 그것은 값이 애플 리케이션 설정 내부에 있기 때문에 일종의 매개 변수가 아니지만 일종의 표현식이므로 메시지 안에 하드 코딩 할 필요가 없습니다. 또한 메시지가 내 컨트롤러가 아닌 타사의 보석 컨트롤러에서 표시되기 때문에 매개 변수가 적합하지 않습니다. 그래서, 나는 이런 식으로 뭔가가 제대로 평가해야합니다레일즈의 표현식을 사용한 국제화 메시지

I18n.t(:taken_in_past, scope: [:errors, :messages]) 

.yml 파일 : 그것은 단지 생각의

en: 
    errors: 
     messages: 
     taken_in_past: "could not be equal to on of #{Devise.password_archiving_count} previous passwords" 

답변

0

, 나는 실제로 그것을 확인하지 않습니다합니다.

당신은 실종 보간 https://github.com/svenfuchs/i18n/blob/master/lib/i18n/config.rb#L107 로케일에서

당신이

taken_in_past: "could not be equal to on of #{password_archiving_count} previous passwords" 

설정하고 핸들러에서이 보간 내가 어떻게이 핸들러를 배치해야

case key 
when 'password_archiving_count' then Devise.password_archiving_count 
+0

을 대체하기위한 핸들러를 설정할 수 있습니다 그것을 구현? –