我已将html代码存储在数据库字段中,该字段将传递给rails app。
<%= raw @exercise.explanation %>
正常文字正确呈现,位于<p> .. </p>
;但在那里只显示图像代码,因此页面上的输出为:
这是正确的渲染文字。
<%= image_tag ("exercises/picture.png"), style: 'height:auto; width:50%;' %>
进一步的文字。
当我在数据库条目中使用<img src="exercises/picture.png">
或<img src="picture.png">
时,也没有加载图片,只是浏览器的损坏图像符号。
答案 0 :(得分:0)
您是否拥有资产管道?如果这样做,可能会发生这种情况,因为它会在静态资产上生成哈希,以避免缓存问题。问题是image_tag
助手解决了这个问题。这是一个权衡,但你可以禁用Assets Pipeline并查看它是否有效。为了保持这种状态并执行此操作,您需要一个更详细的解决方案。
您可以通过禁用资产摘要来尝试:
config.assets.digest = false
答案 1 :(得分:0)
或者,您可以ERB
解释@exercise.explanation
<%= ERB.new(@exercise.explanation).result(binding) %>
这将花费您的@exercise.explanation
并通过ERB
处理,这似乎是您所希望的。
<强>买者强>:
要非常小心你允许存储在这些&#34;模板&#34;如果您不能/无法清理此输入,那么事情可能会变坏。 ERB#result
基本上是对eval
的调用(这可能非常危险)