我有一个 textarea 字段,用户可以在其中输入内容。在页面上显示他们的条目时,rails 返回 \n
对于每个换行符,对于页面上的 html,它看起来根本没有换行符。
据我所知,解决这个问题的标准方法是 .gsub
命令,替换 \n
与 <br />
,然后是 .html_safe
到底要保证<br />
呈现。
问题是,我不想 html_safe 内容 - html 仍然应该被替换,但是 <br />
标签应该被注入(inject)到(非转义的)内容中。
建议表示赞赏。
最佳答案
simple_format
方法适用于格式化换行符。它将文本 block 包装在 <p>
中标签,并将换行符转换为换行符( <br>
)(双换行符将以下文本分成第二段)。
但是,它不会转义其他 html 字符,而只是允许它们。对于 simple_format
的组合后你想要什么连同 sanitize应该做得很好。尝试使用这个:<%=raw sanitize(simple_format(@article.body), :tags => %w(br p) ) %>
关于ruby-on-rails - 在不允许所有 html 标签的情况下解析文本区域中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253689/