2011-11-17 93 views
5

FormBuilder#label方法(see docs)返回给定属性的<label>标签。如果用户不提供标签文本,则使用i18n库进行查找。在检查的顺序是:获取没有标签标签包装的国际化标签文本

  1. helpers.label.object.method
  2. object.class.human_attribute_name(method_name)
  3. method_name.humanize

在哪里有一个API方法,执行一个类似的查询,但不包裹在<label>标签输出?如果没有,剥离FormBuilder#label返回的标签中的<label>标签的最佳方式是什么,而不剥离国际化字符串可能包含的任何其他html标签。

回答

0

目前,我有下面的代码,它对标签标签进行蛮力剥离。寻找更好的解决方案...

label(attribute,text).gsub(/^<label(.*?)>/,'').gsub(/<\/label>$/,'')

+0

看到没有,我会接受这一点。 –

0

是的,你可以使用Class.human_attribute_name(attribute),例如:

Person.human_attribute_name("first_name") # => "First name" 
# you can also use :first_name 

Source

+2

如果您想使用属性名称作为标签,这只是准确的。 –