2010-11-20 2 views
0

У меня есть вход в textarea, который позволяет пользователям вводить больше, чем по абзацу, то есть пользователь может выводить новую строку.рельсы - вывод пользовательского ввода с возвратом абзаца?

Проблема в том, когда я выводю, что из базы данных все сжато в одну строку?

Как создать новую строку в дружественной HTML-строке, чтобы она выглядела так, как пользователь вводил текст?

благодаря

ответ

7

Используйте simple_format помощника. Это заменить все \ п на <br /> или <p>

Примеры из API:

my_text = "Here is some basic text...\n...with a line break." 

    simple_format(my_text) 
    # => "<p>Here is some basic text...\n<br />...with a line break.</p>" 

    more_text = "We want to put a paragraph...\n\n...right there." 

    simple_format(more_text) 
    # => "<p>We want to put a paragraph...</p>\n\n<p>...right there.</p>" 

    simple_format("Look ma! A class!", :class => 'description') 
    # => "<p class='description'>Look ma! A class!</p>" 
+0

спасибо, что работал большой – AnApprentice

-1

Это также работает. Поместите это в Imput шоу (изменения к вашему класс и атрибут, текс: @ post.content или @ post.body).

<%= @class.attribute.html_safe.gsub(/\r\n?/,"<br/>").html_safe %> 
0

Это правило CSS должно сделать трюк:
white-space: pre-line;

Смежные вопросы