我使用sass-rails和compass-rails进行混合。
我的网站允许用户选择自己的颜色。这些颜色需要在sass/compass混合中运行。颜色存储在数据库中。
我想到的解决方案是动态设置头部标签内的颜色。不幸的是,我无法找出一种方法来让Rails在视图文件中处理SASS块。
这个解决方案完成了一半的工作。它在外部文件中处理sass并将其加载到视图中,但我无法将颜色传递给它:
<%= Rails.application.assets.find_asset('mystyle').to_s.html_safe %>
任何想法?
你也可以像这样在你的应用程序中使用Sass引擎:
color = "#0000ff"
engine = Sass::Engine.new("#main {background-color: #{color};height: pow(10,2)px}", :syntax => :scss)
engine.render
=> "#main {n background-color: #0000ff;n height: 100 px; }n"
pow()是一个罗盘函数,只是为了说明您可以在那里使用罗盘。你需要在你的Gemfile中有compass gem。
见这里的"使用Sass":
http://sass-lang.com/documentation/file.SASS_REFERENCE.html