ruby-on-rails - 为什么 Rails 的 "errors.full_messages"不替换属性和消息变量?

标签 ruby-on-rails ruby validation activerecord internationalization

我刚刚创建的 Rails 模型出现了一个奇怪的问题。

这是我的验证:

validates_presence_of :from_name, :message => 'Please provide a from name.'
validates_presence_of :from_email
validates_presence_of :giftition_plan_id

我在表单中使用 errors.full_messagesf.error_messages 时遇到问题:

g = Giftition.create
g.errors.first
=> ["from_name", "Please provide a from name."]
>> g.errors.full_messages
=> ["{{attribute}} {{message}}", "{{attribute}} {{message}}", "{{attribute}} {{message}}"]

我正在获取 "{{attribute}} {{message}}"。有什么想法吗?

更新:我已经卸载了 rails 3 和所有随它安装的 gem,这让问题消失了。但这不是解决办法……我仍然想安装 Rails 3。

更新:听起来升级到 2.3.9 可以解决问题。不幸的是,我暂时放弃了,但将来某个时候我会尝试一下。

最佳答案

我在继承一个旧的 2.3.5 Rails 应用程序时也遇到了这个问题。我安装了 i18n gem 的 5.0 版本。我看到它需要 %{} 语法。在 config/locales/en.yml 中这样做就可以了:


en:
  activerecord:
    errors:
      full_messages:
        format: "%{attribute} %{message}"

关于ruby-on-rails - 为什么 Rails 的 "errors.full_messages"不替换属性和消息变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370503/

相关文章:

ruby - 如何更改 Struct 属性的默认值?

javascript - 如何从我的函数中编写正则表达式模式以验证自定义电话号码?

ruby-on-rails - Ruby On Rails Rspec 'require' 找不到文件

ruby - git 最好的 ruby​​ api 是什么?

php - 全局电子邮件验证

javascript - 是否有任何使用工具提示显示验证消息的客户端验证库?

mysql - ruby on rails 中的 schema.rb 和 mysql 数据库问题

ruby-on-rails - Rails 模型可以有太多关联吗?

ruby-on-rails - 如何检查数组中的每个单词是否包含子字符串并拒绝 Ruby on Rails 中的子字符串?

ruby-on-rails - 无法覆盖设计密码 Controller