如何在Rails中保存博客文章的图像?

时间:2015-02-14 16:36:18

标签: ruby-on-rails content-management-system blogs refinerycms

我在Rails中构建博客,并希望将图像添加到帖子中。

我基本上将HTML写入文本区域并将其保存到数据库中。然后,我在显示页面上使用@post.content打印帖子内容。

通常情况下,您可以使用<%= image_tag 'mypic.jpg %>呈现动态图片网址,但由于它会在数据库中保存为字符串,因此在这种情况下不起作用。

如何在图像数据库中保存图像标记?

CKeditor这样的cms或博客引擎和编辑如何处理这个问题?

1 个答案:

答案 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还会生成一组路径来处理上传图像的路径。