5

FormBuilder#labelメソッド(see docs)は、指定された属性の<label>タグを返します。ユーザーがラベルのテキストを提供しない場合は、i18nライブラリを使用して検索が行われます。チェックの順序は次のとおりです。ラベルタグラッパーを使用しない国際化ラベルテキストの取得

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

同様の検索を実行しますが、<label>タグで出力をラップしませんAPIメソッドのどこがありますか?そうでない場合は、<label>タグをFormBuilder#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

これは、属性名をラベルとして使用する場合にのみ正確です。 –