5

每个人!

我对我的 :username 字段有一个小的验证,它应该是 4 到 30 个字符。我写了一个验证::length => { :within => 4..30, :message => I18n.t('activerecord.errors.range')- 我想为所有类型的错误显示一条错误消息(不喜欢,too_long 或 too_short),但这里有一个问题 - 我可以将最小值和最大值都传递给翻译,有类似的东西:用户名应介于 4 到 30 个字符之间。目前我有:range: "should be between %{count} and %{count} characters",这显然不起作用(只是为了检查)。

是否可以从范围中获取这些值?

谢谢大家的指教!

4

1 回答 1

9

您可以将自定义变量传递给 I18n 翻译方法(或其简写 - t):

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

然后你可以在你的字符串模板中使用 %{min} 和 %{max}。

它不会自动从范围中取出它,但这是我能想到的最接近的。

于 2012-09-03T12:46:19.670 回答