Rails 3自定义错误消息

时间:2010-12-07 00:28:26

标签: ruby-on-rails validation

我正在尝试做一些非常简单的事情。我在rails 3中验证了存在:

validates_presence_of [:first_nm]

当它触发时,会发出以下蹩脚的消息:

“第一个nm不能为空”

我想覆盖错误消息,为“first nm”

提供友好的字段名称

“请填写您的名字”

我已经看过各种插件,本地化,人性化属性教程,但这些似乎不起作用或过时。在Rails 3中没有简单的方法吗?

对于本地化,我试过这个:

# Sample localization file for English. Add more files in this directory for other locales.
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.

en:
  activerecord:
    errors:
      messages:
        taken: "has already been taken"
        record_invalid: "Validation failed: %{errors}"
        models:
            customer:
              blank: "This is a custom blank message for %{model}: %{attribute}"
              attributes:
                first_nm:
                  blank: "This is a custom blank message for first name"
唉,没有运气。我的错误消息没有改变。

关于可能相关的事情。我不是从ActiveRecord继承,因为这个对象是通过soap而不是数据库保存的。相反,我有以下内容:

class Customer
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  include ActiveModel::Validations


end

1 个答案:

答案 0 :(得分:2)

您是否在ActiveRecord localization上看过此页面?它似乎适用于Rails 3.我现在无法测试它,但是通过文档看起来你可以做到:

models.user.attributes.first_nm.blank = "Please fill out your First Name"