Formtastic:验证错误消息,不将区域设置模板变量转换为值

时间:2011-02-16 00:15:34

标签: ruby-on-rails authlogic formtastic

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 dir复制到我的本地应用程序config / locales目录中。将所有{{count}}更改为%{count}后,事情现在正确显示。

使用rails v2.3.8时,formtastic v1.1.1可能存在错误?变更日志通常会说一些可能属于它的事情。有几个较新版本的formtastic可用。遗憾的是我不能升级这个环境所以我要设置另一个来测试更新的formtastic版本。

1 个答案:

答案 0 :(得分:0)

最近看到了显示{{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 =&gt; '0.4.2'

bundler也可以提供很多帮助,虽然Rails3标准,我相信更改现有的2.3.x应用程序以使用它的步骤(不是你通常需要知道的那些?)如下所示。 好吧,显然安装它,问题。 gem install bundler 然后从environment.rb文件中获取(最终删除它们)所有现有的'gem ...'语句,然后将它们放在Gemfile中,然后使用以下命令: 捆绑安装 要么 捆绑更新 你可以创建一个'捆绑'。 上面的命令创建一个Gemfile.lock,它包含您正在使用的版本。

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