Rails 3. simple_format не переносит результат в теги абзацев

Как я могу заставить simple_format не переносить возвращаемое значение в теги p?

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

Ответы

Ответ 1

К сожалению - вы не можете. Если вы проверите источник в http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format, вы увидите, что теги p автоматически обернуты вокруг содержимого.

Вы можете создать помощник, который использует код simple_format, но изменить его, чтобы не включать теги p...

Ответ 2

Вы можете указать опцию wrapper_tag.

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

Этот код будет:

<span>Hello</span>

Ответ 3

Наверное, не то, что вы действительно хотели, но... Я закончил это:

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