2016-06-16 40 views
0

我需要在div類中顯示具有background-image屬性的用戶的配置文件圖片。問題是,image-url和asset-url可能只能從scss文件中調用,並且從scss文件中,@user變量不可見。它說「未定義的局部變量或方法`params'」,當我嘗試訪問用戶標識。無法在其他主題中找到答案。SASS:背景圖像url和rails控制器變量

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

回答

2

你的資產文件被設計在本質上靜態的,尤其是當他們已經走下來,預編譯,指紋,以及所有資產的管道。每當有其他用戶登錄時,都不能讓他們更改,因爲這需要全新的預編譯,指紋和靜態資源。

現在預編譯對您來說不是一個問題,因爲您處於開發環境中,但是會在生產中出現問題。

這是罕見的場景之一,style屬性更合適!或者,一些頁面內Javascript會改變匹配你div的class/id/selector的所有元素的style屬性。您可以利用此asset_url和/或image_url

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

AssetUrlHelper文檔,這是可以在任何Rails的看法!

+0

感謝您的回答。我會考慮在這裏作出改變,但我仍然很想知道這是否可能。您所說的第二件事的問題是,sass屬性image-url和asset-url只能從.scss文件調用,而rails無法使用常規「background:url」查看資產圖像。可能是因爲這根本無法完成。 –

+0

@DR_對不起,我忘了提及您可以在視圖中使用'image_url'和'asset_url'。我會將其添加到我的答案。 – sjagr