Rails正在页面上显示验证消息:
1 error prohibited this {{model}} from being saved
There were problems with the following fields:
{{attribute}} {{message}}
希望它显示模型名称而不是这些括号。 我该如何修复它以及为什么要这样做?
答案 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时出现的问题。
步骤:
注意:如果确实需要i18n,只需在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版才能完成这项工作。