0
votes

I'm trying to do something very simple. I have a validates presence of in rails 3:

validates_presence_of [:first_nm]

When this fires, it gives the following crappy message:

"first nm cannot be blank"

I want to override the error message to give a friendly field name for "first nm"

"Please fill out your First Name"

I have seen all kinds of plugins, localization, humanized attributes tutorials, but these don't seem to work or are outdated. Is there no simple way to do this in Rails 3?

For localization, i've tried this:

# 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"

Alas, no luck. My error message did not change.

On thing that might be related. I'm not inheriting from ActiveRecord, because this object is getting saved via soap, not database. Instead, I have the following:

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


end
1

1 Answers

2
votes

Have you seen this page on ActiveRecord localization? It seems to be for Rails 3. I can't test it right now, but by the document it seems you can do:

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