2013-02-03 18 views
11

私はsimple_formの関連付けの出力をカスタマイズしようとしていますが、基本的に2行にチェックボックスのラベルを表示する必要があります。私の考えは、私はラベル出力Rails - simple_formラベルへのカスタムHTML

をカスタマイズするためのラムダを使用し、「ラベル」に「BR」タグを追加しましたが、それは代わりに新しい行に

を行こうと、実際に「BR」と表示されるように、残念ながらそれはエスケープされます

<%= f.association :item, :as => :check_boxes, :collection => current_user.items, :label => false, :label_method => lambda { |item| "#{item.city.capitalize},<br> #{item.address}" }%> 

これは、ラベル文字列にエスケープされたbrを生成します。ラベルを2行に表示するにはどうすればよいですか?

答えて

27

コールhtml_safe方法をデバッグすることができます。あなたのそれらのため

<%= f.association :item, :as => :check_boxes, :collection => current_user.items, :label => false, :label_method => lambda { |item| "#{item.city.capitalize},<br> #{item.address}".html_safe }%> 
+0

は – Carlo

+0

どういたしましてを働いたこと、ありがとうございました。 :) –

+4

XSS攻撃に対して脆弱だと思われます。 html_safe' – dskecse

2

html_safeは役に立ちますか?

<%= f.association(....).html_safe %> 

ない場合は、この問題を展示githubの上の例のアプリを投稿するので、我々はそれをあなたがエスケープされていないたい文字列上の

10

OPの質問のタイトルが示すように要素にカスタムHTMLを持っているために探して、あなたはこれを行うことができます。

= f.input(:Foo, label: "Foo <span>(Blah helper text blah)</span>".html_safe) 
関連する問題