每个人!

我对我的: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",它显然不起作用(仅用于检查)。

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

谢谢大家的指教!

最佳答案

您可以将自定义变量传递给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/

10-13 05:15