Имена человеческих атрибутов в Rails 3.x?
Возможный дубликат:
Заголовок атрибута пользовательской модели (название столбца) в Ruby on Rails
Я использую это решение в Rails 2.x навсегда:
HUMANIZED_ATTRIBUTES = {
:email => "E-mail address"
}
def self.human_attribute_name(attr)
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
но это вызывает странные ошибки при получении errors
из экземпляра ActiveRecord. Каков правильный способ получить хорошие, удобочитаемые имена в Rails 3.x?
Ответы
Ответ 1
Я думаю, что правильным подходом Rails 3 было бы использовать перевод api, но я использую human_attribute_name следующим образом:
def self.human_attribute_name(attr, options = {})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
Вызов супер может ожидать, что аргумент параметров будет там.
Ответ 2
Использование human_attribute_name с каркасом I18n более просто, я думаю:
На ваш взгляд: User.human_attribute_name ( "email" )
В вашем языковом yml файле:
en:
activerecord:
attributes:
user:
email: E-mail address