16

simple_form 関連付けの出力をカスタマイズしようとしています。基本的には、チェックボックス ラベルを 2 行で表示する必要があります。私のアイデアは「ラベル」に「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 行で表示するにはどうすればよいでしょうか?

4

3 に答える 3

32

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 }%>
于 2013-02-03T12:25:45.530 に答える
13

OPの質問のタイトルが示唆するように、要素にカスタムhtmlを入れたいと思っている人は、これを行うことができます:

= f.input(:Foo, label: "Foo <span>(Blah helper text blah)</span>".html_safe)
于 2014-07-21T08:54:07.533 に答える
2

html_safe役に立ちますか?

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

そうでない場合は、この問題を示すサンプルアプリを github に投稿して、デバッグできるようにしてください。

于 2013-02-03T12:21:38.597 に答える