1错误禁止此{{model}}被保存

时间:2010-12-07 04:05:13

标签: ruby-on-rails validation

Rails正在页面上显示验证消息:

1 error prohibited this {{model}} from being saved
There were problems with the following fields:
{{attribute}} {{message}}

希望它显示模型名称而不是这些括号。 我该如何修复它以及为什么要这样做?

4 个答案:

答案 0 :(得分:10)

这是rails中的国际化问题。对某些人有用的一个解决方案是将国际化宝石从0.5.0降级到0.4.2,如下所示:

sudo gem uninstall i18n
sudo gem install i18n -v 0.4.2

当然,如果你使用RVM来管理你的宝石,你在上面的命令中不需要sudo

答案 1 :(得分:2)

正确的解决方案是使用bundler来管理你的gem,而不是使用系统默认值和旧的Rails 2.x方法将它嵌入到environment.rb中。 Bundler正确地将您的应用程序gem与系统gems隔离,并消除了使用i18n版本0.4.2和0.5以及Rails 2.x和3.x时出现的问题。

步骤:

  1. 为您的Rails 2.3应用程序设置bundler
  2. 在你的Gemfile中,完全省略i18t。
  3. 运行'bundle'
  4. 注意:如果确实需要i18​​n,只需在Gemfile中指定正确的版本即可。 Bundler正确地将你的应用程序的宝石与你的系统宝石隔离开来,这样就不会出现在你的系统上同时安装0.4.2和0.5的奇怪行为。

答案 2 :(得分:1)

如果您想要安装两个gems,另一个解决方案是创建config / preinitializers.rb并添加行

gem 'i18n', '0.4.2'

答案 3 :(得分:0)

使用Rails 2.3.5时,即使包含

的config / preinitializers.rb也是如此

gem 'i18n', '0.4.2

和包含

的environment.rb

config.gem "i18n", :version => '0.4.2'

我必须卸载i18n gem的0.5.0版才能完成这项工作。