我正在制作一个集成了Ace在线IDE的网络应用程序。用户通过Ace IDE输入输入,然后存储在数据库中。但是当从数据库中呈现时,Rails已经进行了某种清理,并且没有加载HTML标记。
如何明确告诉Rails将所有HTML标记保留在标记中而不格式化(包括标签和空格)?
编辑:
这是用户输入的内容:
这就是它的输出:
答案 0 :(得分:2)
尝试使用raw方法。此方法输出而不转义字符串
答案 1 :(得分:1)
您必须将.html_safe
附加到您要返回视图的任何字符串中。默认情况下,Rails不信任用户可能创建的任何内容。
所以
<%= @my_source_code_from_the_db %>
变为
<%= @my_source_code_from_the_db.html_safe %>
正如@Sam_D所提到的,另一种选择是将你的字符串包装在对raw:
的调用中<%= raw(@my_source_code_from_the_db) %>
答案 2 :(得分:0)
原来是因为我删除了simple_format()
,只是简单地调用<%= @lesson.lesson_content %>
它就完美呈现了。