可能重复:
Custom model attribute (column name) title in 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
但是从ActiveRecord实例获取errors
时会出现奇怪的错误。在Rails 3.x中获取漂亮的,可读的名称的正确方法是什么?
答案 0 :(得分:29)
我认为将human_attribute_name与I18n框架结合起来更简单:
在您的视图中:User.human_attribute_name(“email”)
在您的语言环境yml文件中:
en:
activerecord:
attributes:
user:
email: E-mail address
答案 1 :(得分:6)
我认为正确的Rails 3方法是使用translation api,但我使用的是human_attribute_name,如下所示:
def self.human_attribute_name(attr, options = {})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
对super的调用可能期望options参数存在。