16

我正在尝试自定义 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,我怎么能在两行上显示标签?

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

对于那些希望在元素中包含自定义 html 的人,正如 OP 问题的标题所暗示的那样,您可以这样做:

= 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 回答