我在Rails中构建博客,并希望将图像添加到帖子中。
我基本上将HTML写入文本区域并将其保存到数据库中。然后,我在显示页面上使用@post.content
打印帖子内容。
通常情况下,您可以使用<%= image_tag 'mypic.jpg %>
呈现动态图片网址,但由于它会在数据库中保存为字符串,因此在这种情况下不起作用。
如何在图像数据库中保存图像标记?
像CKeditor这样的cms或博客引擎和编辑如何处理这个问题?
答案 0 :(得分:1)
默认情况下,rails将转义字符串中的HTML标记。要以HTML格式打印帖子内容字符串,您可以使用raw()
方法。您也可以使用html_safe
。 Raw通常是首选,因为如果传递给它的值为零,则不会引发异常。
<%= raw @post.content %>
或<%= @post.content.html_safe %>
请记住,您应该只对您知道跨站点脚本XXS安全的字符串使用这些方法。如果您的网站接受用户输入,则可能是安全漏洞。
CKEditor可以处理文件上传宝石,如Carrierwave或Dragonfly。使用img上传实现CKEditor需要一个新的数据库表,当通过文本编辑器上传时,它将在服务器上保存图像。图像的路径保存在<img>
标记中的Post字符串中。 CKEditor还会生成一组路径来处理上传图像的路径。