Rails 3. simple_format不会将结果包装在段落标记中

时间:2012-01-03 20:26:45

标签: ruby-on-rails ruby

如何让simple_format不将返回的值包装在p标签中?

simple_format "<span class="required">*</span>"

4 个答案:

答案 0 :(得分:10)

不幸的是 - 你做不到。如果您在http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format查看来源,则会看到p标签无条件地包裹在内容中。

您可以创建一个使用simple_format代码的帮助程序,但修改它不包含p标记...

答案 1 :(得分:5)

您可以指定wrapper_tag选项。

simple_format 'Hello', {}, wrapper_tag: 'span'

此代码将为:

<span>Hello</span>

答案 2 :(得分:2)

可能不是你真正想要的,但是......我最终做到了这一点:

module ApplicationHelper
  def nl2br s
    split_paragraphs(sanitize(s, tags: [])).join('<br>').html_safe
  end
end

UPD 或者更好:

def nl2br s
  sanitize(s, tags: []).gsub(/\n/, '<br>').html_safe
end

答案 3 :(得分:0)

如果您只是想摆脱浏览器样式,有一个解决方法:

simple_format "<span class="required">*</span>", {}, wrapper_tag: 'p style="margin: 0"'

...hackedy-hack-hack...