获取没有标签标签包装的国际化标签文本

时间:2011-11-17 21:59:28

标签: ruby-on-rails internationalization ruby-on-rails-3.1

FormBuilder#label方法(see docs)会返回给定属性的<label>标记。如果用户没有为标签提供文本,则使用i18n库进行查找。支票的顺序是:

  1. helpers.label.object.method
  2. object.class.human_attribute_name(method_name)
  3. method_name.humanize
  4. 是否有任何API方法执行类似的查找但不将输出包装在<label>标记中?如果没有,那么从<label>返回的标记中剥离FormBuilder#label标记的最佳方法是什么,而不剥离国际化字符串可能包含的任何其他HTML标记。

2 个答案:

答案 0 :(得分:0)

目前,我有以下代码可以强制剥离标签标签。寻找更好的解决方案......

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

答案 1 :(得分:0)

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

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

Source