Dre*_*rew 8 ruby-on-rails sass ruby-on-rails-3.1 asset-pipeline
我在Asset Pipeline中使用Rails 3.1和SCSS.无论如何都要访问SCSS文件中的Rails助手或控制器数据?就像是...
#main {
background-color: #{current_user.preferences.background_color}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以自己设置,$variables但我不确定如何从控制器的数据中填充它们.
据我所知,这不是Asset Pipeline的设计目标.
想一想,您有一个rake assets:precompile命令将所有.scss.erb文件转换为静态.css文件.
那你怎么可能current_user从那个.scss.erb文件中访问变量呢?
在我看来,不可能在.scss.erb或中获得控制器变量.coffee.erb.
您可以使用Rails 3.1链接模板处理器,这样您就可以执行my.css.scss.erb,然后嵌入您的变量:
$user-background-color: <%= current_user.preferences.background_color %>
Run Code Online (Sandbox Code Playgroud)
然后,您可以在整个SCSS中使用Sass变量.
我采用了不同的方法来解决Rails 3.0的这个问题:使用SASS和用户指定的颜色