css - 使用传递的变量在 Rails View 中处理 SASS 和 Compass

标签 css ruby-on-rails-3 sass asset-pipeline compass-sass

我正在为混合使用 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”:

http://sass-lang.com/documentation/file.SASS_REFERENCE.html

关于css - 使用传递的变量在 Rails View 中处理 SASS 和 Compass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431552/

相关文章:

javascript - FireFox 键盘事件按钮

ruby-on-rails - rails 3 与回形针和多个模型的多态关联

css - 我可以更改 Angular 2 中的 scss 文件的变量吗

javascript - CSS 专注于子元素更改父元素

c# - 如果元素上有类,则 CSS 选择器应用 CSS

html - 防止 anchor 跳转到内部链接

javascript - 设置 CSS 媒体类型内联

javascript - 页面完全加载后触发预取

ruby-on-rails - 在检查机器人的函数中使用中断时,Ruby 函数返回 true 而不是 false

jquery ui 自动完成 : remote source problem