2016-02-26 65 views
0

我的应用程序中的文章有字段“body”,其中包含html文本。例如:Ruby on rails:用html和rails代码转换文本

<div class ='skill_pic'> 
    <img src = "/assets/images/picture_1.png"> 
</div> 

鉴于我叫场“身体”中指出:

<%= raw @article.body %> 

在本地机器上一切正常,但是当我在生产部署我的应用程序,图像显示不正确的和浏览器控制台返回404错误。

IMAGE_TAG在文章的身体可以解决我的问题,我的意思是:

<div class ='skill_pic'> 
    <%= image_tag('images/picture_1.png') %> 
</div> 

但辅助原料不能转换文本使用HTML和轨方法

现在,我想在三个方向:

  1. 寻找生产图像的正确路径
  2. 找到一些帮手,它可以正确地将文本转换为html和rails代码
  3. 找到另一种解决方案

回答

0

你可以存储erb谐音像这样在你的数据库:

<div class ='skill_pic'> 
    <%= image_tag('images/picture_1.png') %> 
</div> 

并与ERB在你的意见使它们:

<%= raw ERB.new(@article.body).result(binding) %> 
+0

<%= raw ERB.new(@ article.body).result(binding)%> 它解决了我的问题,很大让你痴迷 – Largo

+0

很高兴能帮到你。当它解决你的问题时,你介意接受答案吗? – spickermann

0

我想您做一些迷你CMS。小心不要让用户填写数据库中的数据。你会遇到非常糟糕的安全问题。如果用户可以编辑你的html,你最好使用一些模板引擎,如Liquid或markdown。

这就是说,你应该不使用资产管道的参考图像。将图像放入public文件夹而不是assets文件夹。公共文件夹将会像web根目录'/'一样可用,所以没有url中的'public'。