【问题标题】:Get internationalized label text without the label tag wrapper在没有标签标签包装器的情况下获取国际化标签文本
【发布时间】:2011-11-17 21:59:28
【问题描述】:

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 标记的最佳方法是什么。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      Source

      【讨论】:

      • 只有当你想使用属性名作为标签时才准确。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多