Разрывы строк не отображаются в поле зрения - PullRequest
16 голосов
/ 27 февраля 2011

У меня есть Person.description со следующими данными в базе данных:

jnkl

fdsfdsf

fdsf

fsdfdsfs fds fd sf sfsdf ds

Как мне отобразить это с переносами строк в представлении?В настоящее время он отображает все в одной строке, и я не понимаю, почему.

Ответы [ 4 ]

26 голосов
/ 27 февраля 2011

Причина в том, что в обычном HTML, за пределами содержащих тегов, таких как 'xmp', разрывы строк не отображаются как разрывы строк, по большей части они игнорируются. Чтобы они отображались, вам необходимо заменить их тегами 'br' или чем-то еще, с которым связан стиль или структура, например теги p или даже div, в зависимости от содержимого.

Это должно сделать то, что вы просите:

@person.description.gsub(/\n/, '<br />')

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

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

25 голосов
/ 11 октября 2014

Вы должны использовать помощник simple_format:

<%= simple_format @person.description %>

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

Источник

# File actionview/lib/action_view/helpers/text_helper.rb, line 301
def simple_format(text, html_options = {}, options = {})
  wrapper_tag = options.fetch(:wrapper_tag, :p)

  text = sanitize(text) if options.fetch(:sanitize, true)
  paragraphs = split_paragraphs(text)

  if paragraphs.empty?
    content_tag(wrapper_tag, nil, html_options)
  else
    paragraphs.map! { |paragraph|
      content_tag(wrapper_tag, raw(paragraph), html_options)
    }.join("\n\n").html_safe
  end
end
4 голосов
/ 08 июня 2014

Я также использую

@person.description.gsub(/\n/, '<br/>').html_safe 

чтобы отобразить их в виде

1 голос
/ 17 ноября 2018

Вместо замены \ n на <br> теги, которые потребовали бы много обработки, если бы это был большой текст, используйте css white-space: pre, чтобы разбить строки на \ n.

Источник: HTML-тег, отличный от текстовой области, где \ n правильно интерпретируется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...