0

导轨 v2.3.8

形式化 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 版本。

4

1 回答 1

0

最近经常看到显示 {{count}} 以及 {{model}} 和 {{attributes}} 之类的消息,这也可能是由于服务器上装有 Rails3 应用程序。

有几个常见的修复:

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

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

gem il8n, :version => '0.4.2'

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

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

于 2011-02-24T03:09:20.710 回答