【问题标题】:Formtastic: Validation error messages not translating locale template vars to valueFormtastic:验证错误消息未将语言环境模板变量转换为值
【发布时间】:2011-02-16 00:15:34
【问题描述】:

Rails v2.3.8

formtastic v1.1.0

表单绘制正确,验证有效,但任何涉及字符串长度的验证消息显示为:

is too short (minimum is {{count}} characters)

基本上{{count}}没有被填写。在irb中,我可以看到该值在ActiveRecord::Errors的@options中:

>> u.errors
=> #<ActiveRecord::Errors:0x7f98785b4ab0 @errors=#<OrderedHash {"password"=>[#<ActiveRecord::Error:0x7f9878561b30 @type=:too_short, @options={:default=>nil, :count=>4},...

请注意,这是对 authlogic v2.1.6 执行的用户模型的验证(可能不相关)。

--- 更新 --------- :

经过进一步挖掘,我将 en.yml 语言环境文件从 activerecord-2.3.8 gem 目录复制到我的本地应用程序 config/locales 目录中。将所有 {{count}} 更改为 %{count} 后,现在可以正常显示。

可能是formtastic v1.1.1 与rails v2.3.8 一起使用的错误?变更日志通常涉及一些可能属于它的内容。有几个较新版本的 formtastic 可用。很遗憾,我无法升级此环境,因此我将设置另一个环境来测试较新的 formtastic 版本。

【问题讨论】:

    标签: ruby-on-rails authlogic formtastic


    【解决方案1】:

    显示 {{count}} 以及 {{model}} 和 {{attributes}} 等内容的消息最近经常出现,也可能是由于服务器上装有 Rails3 应用程序。

    有几个常见的修复方法:

    1) 从 2.3.8 升级到 2.3.9 或 2.3.10 非常小的变化,不应该影响其他任何东西(当然是测试)。因此,只需在 environment.rb 中更改您的 rails 版本

    2) 包含特定版本 il8n 的 gem,例如(0.4.2),在 environment.rb 中,添加一行:

    gem il8n, :version => '0.4.2'

    bundler 也有很大帮助,虽然 Rails3 是标准配置,但我相信更改现有 2.3.x 应用程序以使用它的步骤(这不是您通常需要知道的吗?)如下。 好吧,显然安装它,概率。宝石安装捆绑器 然后从您的 environment.rb 文件中获取(最终删除它们)所有现有的“gem ...”语句并将它们放入一个 Gemfile 然后使用以下命令: 捆绑安装 或者 捆绑更新 您可以创建一个“捆绑包”。 上面的命令创建了一个 Gemfile.lock ,其中包含您正在使用的版本。

    此外,如果您有多个 cucumber 版本或在 IDE 中运行的问题测试,可能需要下一个命令: 捆绑执行黄瓜功能/user_can_login.feature 或者 bundle exec cucumber features/user_can_login.feature:6(具体行号)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多