ruby-on-rails - Ruby on Rails I18n 插值

标签 ruby-on-rails ruby validation internationalization range

大家好!

我对我的 :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} 使用它们。

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

来源:

Passing Variables to Translations @ rubyonrails.org

关于ruby-on-rails - Ruby on Rails I18n 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12248019/

相关文章:

ruby-on-rails - Rails 模型变量意外更改

twitter-bootstrap - BootstrapValidator,验证动态添加到表单的字段

javascript - 设计 Javascript 验证方法

ruby-on-rails - 我应该在Heroku上部署Ruby on Rails应用程序吗

javascript - 如何使用 JavaScript 拦截 HTML5 输入验证?

ruby-on-rails - 如何在没有 Rhosync 或 RhoConnect 的情况下使用 Rhodes?

ruby-on-rails - IndexTank 如何处理权限

ruby-on-rails - 在 MVC 框架(例如 Ruby on Rails)中,通常 Model 拼写为单数,而 controller 和 view 拼写为复数吗?

ruby-on-rails - Rack 中间件中的跟踪错误

c# - Ruby 等效于 C# Linq 聚合方法