我正在尝试自定义simple_form关联的输出,基本上我需要在两行上显示复选框标签。我的想法是在“标签”中添加一个“br”标签,但不幸的是它被转义,因此它实际上显示为“br”而不是转到新行
我使用lambda来自定义标签输出
<%= f.association :item, :as => :check_boxes, :collection => current_user.items, :label => false, :label_method => lambda { |item| "#{item.city.capitalize},<br> #{item.address}" }%>
这会在标签字符串中生成一个转义的br,如何在两行上显示标签?
答案 0 :(得分:31)
在您不希望转义的字符串上调用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 }%>
答案 1 :(得分:12)
对于那些希望在元素中使用自定义html作为OP问题标题的人,你可以这样做:
= f.input(:Foo, label: "Foo <span>(Blah helper text blah)</span>".html_safe)
答案 2 :(得分:2)
html_safe
有帮助吗?
<%= f.association(....).html_safe %>
如果没有,那么在github上发布一个示例应用程序来展示这个问题,所以我们可以调试它