Oh, the humanity.

After spending ages looking for the ‘right’ way to set the ‘humanized’ name for an ActiveRecord attribute (seeing as human_attribute is deprecated),  it seems The Way now is to do this with locales.

Specifically, having something like this in your config/locales/en.yml

activerecord:
    attributes:
      model_name:
        attr_name: "Your mother"

…and this will make all the model errors use the nice name. Hurrah.

Of course, you’ll still need something like http://github.com/kipcole9/rails-i18n-translation-inheritance-helper to stop you needing to add the same thing into en-us, en-gb, etc…