Вам не нужно переименовывать столбцы таблицы, чтобы сделать это.Есть очень чистое исправление:
class User < ActiveRecord::Base
HUMAN_ATTRIBUTE_NAMES = {
:email => 'Email address',
:first_name => 'First name'
}
class << self
def human_attribute_name attribute_name
HUMAN_ATTRIBUTE_NAMES[attribute_name.to_sym] || super
end
end
end
Мы создали хэш атрибутов, в котором мы хотим настроить имена.Вам не нужно перечислять их все, так как многие имена атрибутов будут работать без ограничений, как вы хотите.Затем мы перезаписываем метод ActiveRecord human_attribute_name, чтобы попытаться сначала найти имя в нашем хэше.
Это делает две действительно крутые вещи: вам больше не нужно указывать собственные метки в ваших формах, и ваши сообщения об ошибках будут иметьновые имена автоматически, а также!В качестве бонуса вы можете теперь использовать эти имена где угодно, позвонив по номеру:
<%= User.human_attribute_name(:email) %>
. Это создает более унифицированный подход к именованию.Если вы хотите изменить «электронная почта» на «электронная почта» на следующей неделе, вам нужно сделать это только в одном месте.
Надеюсь, это поможет!