如何在rails模型中设置人类可读的属性名称?

时间:2011-01-21 13:05:05

标签: ruby-on-rails activerecord humanize

这似乎是一个非常简单的问题 - 当我使用form_for或fields_for助手从我的模型生成标记时,如何修改我的模型以自定义为特定属性显示的字符串?

在[1]之前或多或少地提出了相同的问题,但答案是'国际化',而这不是我想要做的,我只想覆盖一个或两个人性化的属性名称

2 个答案:

答案 0 :(得分:3)

您可以覆盖AR类中的human_attribute_name。见mailing list post

答案 1 :(得分:3)

也许你可以按照(未经测试)的方式覆盖模型中的human_attribute_name

def self.human_attribute_name(*args)
  if args[0].to_s == "my_attribute"
    return "My Attribute"
  end
  super
end

除非您具有相应的具有更高优先级的翻译,否则将在标签中使用此值。