8

我在资产管道中使用 Rails 3.1 和 SCSS。无论如何可以访问 SCSS 文件中的 Rails 助手或控制器数据吗?就像是...

#main {
   background-color: #{current_user.preferences.background_color}
}

我知道我可以自己设置$variables,但我不确定如何从控制器的数据中填充它们。

4

2 回答 2

8

据我所知,这不是 Asset Pipeline 的设计目的。

想一想,您有一个rake assets:precompile命令可以将所有.scss.erb文件转换为静态.css文件。

那么你怎么可能current_user从那个.scss.erb文件中访问变量呢?

在我看来,不可能在.scss.erbor中获取控制器变量.coffee.erb

于 2011-07-03T08:56:20.397 回答
7

你可以用 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

于 2011-06-16T14:43:55.293 回答