我正在为混合使用 sass-rails 和 compass-rails。
我的网站允许用户选择自己的颜色。一堆这样的颜色需要通过 sass/compass 混入来运行。颜色存储在数据库中。
我想到的解决办法是在head中动态设置标签内的颜色。不幸的是,我想不出让 Rails 处理 View 文件中的 SASS block 的方法。
此解决方案完成了一半的工作。它处理外部文件中的 sass 并将其加载到 View 中,但我无法将颜色传递给它:
<%= 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() 是一个 compass 函数,只是为了展示您可以在那里使用 compass 。 您需要在 Gemfile 中包含 compass gem。
请参阅此处的“使用 Sass”:
关于css - 使用传递的变量在 Rails View 中处理 SASS 和 Compass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431552/