SASS:背景图片网址和rails控制器变量

时间:2016-06-16 16:23:01

标签: css ruby-on-rails sass assets

我需要在div类中显示具有background-image属性的用户的个人资料图片。问题是,image-url和asset-url只能从scss文件调用,而从scss文件调用@user变量是不可见的。它说"未定义的局部变量或方法`params'"当我尝试访问用户ID时。无法在其他主题中找到答案。

background-image: image-url(<%= @user.avatar %>)

1 个答案:

答案 0 :(得分:2)

您的资产文件本质上是静态的,特别是当它们通过预编译,指纹识别和所有内容进入资产管道时。每次不同的用户登录时,您都无法对其进行更改,因为这需要一个全新的预编译,指纹和静态资产。

预编译现在不是问题,因为您处于开发环境中,但在生产中会出现问题。

这是罕见的情况之一,style属性更合适!或者,一些页内Javascript会更改与div的class / id / selector匹配的所有元素的style属性。您可以使用asset_url和/或image_url

<img src="placeholder.gif" style="background-image: url(<%= asset_url(...)%>);" />

请参阅任何Rails视图中提供的AssetUrlHelper文档!