大家好!
我对我的 :username 字段进行了一个小的验证,它应该是 4 到 30 个字符。我写了一个验证::length => { :within => 4..30, :message => I18n.t('activerecord.errors.range')
- 我想显示一个错误各种错误的消息(不像,太长或太短),但这里有一个问题 - 我可以将最小值和最大值都传递给翻译,以便有类似的东西:用户名应该在 4 到 30 个字符之间。目前我有:range: "should be between %{count} and %{count} characters"
,这显然不起作用(只是为了检查)。
是否可以从范围中获取这些值?
谢谢大家的指教!
最佳答案
您可以将自定义变量传递给 I18n.translate
方法(或其缩写 - I18n.t
):
I18n.t('activerecord.errors.range', :min => 4, :max => 30)
然后你可以在你的字符串模板中用 %{min}
和 %{max}
使用它们。
它不会自动将它从范围中取出,但这是我能想到的最接近的。
来源:
关于ruby-on-rails - Ruby on Rails I18n 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12248019/