Mis*_*hko 37 textarea newline ruby-on-rails ruby-on-rails-3
在我的Rails 3应用程序中,我用它textarea来让用户在论坛中写一条新消息.
但是,当显示消息时,所有换行符看起来都像空格(没有<br />).也许还有其他不匹配的例子,我还不知道.
我想知道解决这个问题最合适的方法是什么.
我想存储在数据库中的文本是正常的(我看到例如<转换为<),因此主要问题是演示文稿.
Rails中是否有内置辅助方法?
(simple_format做了类似于我需要的东西,但它添加了<p>我不想出现的标签.)
Mic*_*per 73
Rails有一个开箱即用的帮助方法,所以你不必编写自己的方法.
从文档:
simple_format(text, html_options={}, options={})
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>"
Run Code Online (Sandbox Code Playgroud)
efa*_*tsi 34
您可以style="white-space: pre-wrap;"在文本周围的html标记中使用.这尊重文本中的任何换行符.
Mis*_*cha 28
既然simple_format没有做你想要的,我会做一个简单的帮助方法来将换行转换为<br>s:
def nl2br(s)
s.gsub(/\n/, '<br>')
end
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,您可以像这样使用它:
<%= nl2br(h(@forum_post.message)) %>
Run Code Online (Sandbox Code Playgroud)
如果有人仍然在这里重定向并使用Rails 4:http: //apidock.com/rails/v4.0.2/ActionView/Helpers/TextHelper/simple_format
您现在可以指定它包含的标记(默认为p),如下所示:
simple_format(my_text, {}, wrapper_tag: "div")
# => "<div>Here is some basic text...\n<br />...with a line break.</div>"
Run Code Online (Sandbox Code Playgroud)
我相信最简单的选择之一就是使用css white-space: pre-line;
其他答案也提到了使用空格,但我认为它需要更多的信息:
在大多数情况下,您应该选择pre-line结束pre-wrap.在这里查看差异.
记住white-space你不应该做这样的事情是非常重要的:
<p style="white-space: pre-line;">
<%= your.text %>
</p>
Run Code Online (Sandbox Code Playgroud)
它会在输出中产生额外的空格和换行符.相反,请使用此:
<p style="white-space: pre-line;"><%= your.text %></p>
Run Code Online (Sandbox Code Playgroud)
另一种方法是将文本包装在<pre>标签中.关于我的CSS选项的最后一点注意事项也是如此:
<p>
<pre><%= your.text %></pre>
</p>
Run Code Online (Sandbox Code Playgroud)
不要将文本与<pre>带有空格或换行符的标记分开.
谷歌搜索这个问题之后我觉得html-approach被认为不如css那么干净,我们应该去css-way.然而,html-way似乎更兼容浏览器(支持古老的浏览器,但谁在乎):
| 归档时间: |
|
| 查看次数: |
27362 次 |
| 最近记录: |