在Rails视图中渲染内联背景图像时转义路径/ URL

时间:2018-07-25 18:50:41

标签: ruby-on-rails views paperclip

我在ERB模板中有以下Rails视图,在其中设置了嵌入式样式的背景图像。

url进行了硬编码以进行演示,但实际上它是通过我的Photo模型(例如photo.source.url(:medium))中的paperclip attachment生成的

<% url = "/system/photos/sources/000/000/008/medium/20160820_131939" %>

<div class="photo" background-image: url(<%= url %>);>
</div>

这最终将呈现以下<div>

enter image description here

从Chrome的检查器中复制以上内容即可发现它是作为键值对生成的

<div class="photo" background-image:="" url(="" system="" photos="" sources="" 000="" 008="" medium="" 20160820_131939);="">
</div>

Rails为什么要这样做?似乎正在尝试逃避路径中的正斜线?

  1. 我尝试了各种形式的html_safe和转义/转义,但是没有运气。

  2. image_pathasset_path在这里不适用,因为我的路径是由回形针gem生成的,它将在所有环境中正确产生正确的路径。

谢谢!

1 个答案:

答案 0 :(得分:1)

background-image属性是CSS,需要位于style属性内。 即<div class="photo" style="background-image: url('<%= url %>');" >