我在资产管道中使用 Rails 3.1 和 SCSS。无论如何可以访问 SCSS 文件中的 Rails 助手或控制器数据吗?就像是...
#main {
background-color: #{current_user.preferences.background_color}
}
我知道我可以自己设置$variables
,但我不确定如何从控制器的数据中填充它们。
我在资产管道中使用 Rails 3.1 和 SCSS。无论如何可以访问 SCSS 文件中的 Rails 助手或控制器数据吗?就像是...
#main {
background-color: #{current_user.preferences.background_color}
}
我知道我可以自己设置$variables
,但我不确定如何从控制器的数据中填充它们。
据我所知,这不是 Asset Pipeline 的设计目的。
想一想,您有一个rake assets:precompile
命令可以将所有.scss.erb
文件转换为静态.css
文件。
那么你怎么可能current_user
从那个.scss.erb
文件中访问变量呢?
在我看来,不可能在.scss.erb
or中获取控制器变量.coffee.erb
。
你可以用 Rails 3.1 链接模板处理器,所以你可以做 my.css.scss.erb,然后像这样嵌入你的变量:
$user-background-color: <%= current_user.preferences.background_color %>
然后,您可以在整个 SCSS 中使用 Sass 变量。
我为 Rails 3.0 采用了不同的方法来解决这个问题:Using SASS with user-specified colours