2012-09-03 3 views
5

모두!Ruby on Rails I18n 보간

저는 4 자 이상 30 자 이하의 my : username 필드에 대해 작은 검증을 받았습니다. 나는 유효성 검사를 썼다 : :length => { :within => 4..30, :message => I18n.t('activerecord.errors.range') - 모든 종류의 오류 (too_long 또는 too_short와 같지 않음)에 대해 하나의 오류 메시지를 표시하려고했다.하지만 여기에 질문이있다. 번역과 같이 최대 값과 최소값을 모두 전달할 수 있는가? : 사용자 이름은 4 자 이상 30 자 이하 여야합니다.. 현재 나는 가지고있다 : range: "should be between %{count} and %{count} characters", 분명히 작동하지 않는다 (검사를 위해 만든 것).

이 값을 범위에서 가져올 수 있습니까?

모두에게 조언을 주셔서 감사합니다.

답변

9

당신은 방법 (또는 속기 - t)를 번역 국제화 사용자 정의 변수를 전달할 수 있습니다

I18n.t('activerecord.errors.range', :min => 4, :max => 30) 

는 그런 다음 % {분}와 % {최대}로 문자열 템플릿 내에서 사용할 수 있습니다.

자동으로 범위에서 벗어나지는 않지만 이것은 내가 생각할 수있는만큼 가깝습니다.

+0

야! 내가 가지고있어 : : length => {: within => a = (4.30), : message => I18n.t ('activerecord.errors.range', : min => a.min, : max = > a.max)} 감사합니다. :) 희망이 누군가에게 도움이 될 것입니다! – Dmitri