使用HAML预处理SCSS

时间:2011-09-22 20:10:39

标签: ruby-on-rails-3.1 haml sass asset-pipeline

我有一个应用程序,有一些类别:番茄,橙,香蕉。 每个类别都有自己保存在数据库中的颜色:FF0000,FF6600,FFFF00。 应用中还有一些属于某个类别的帖子。

我希望HAML和/或SASS从类别名称/颜色生成类,如:

.tomato header { background-color: #FF0000; }
.tomato aside  { background-color: lighten(#FF0000, 0.5); }

.orange header { background-color: #FF6600; }
.orange aside  { background-color: lighten(#FF6600, 0.5); }

.banana header { background-color: #FFFF00; }
.banana aside  { background-color: lighten(#FFFF00, 0.5); }

如您所见,我想循环categories表并使用列出here的SASS函数。这里没有工作示例/伪代码:

- @categories.each |category|
  :sass
    .#{category.slug} header { background-color: ##{category.color}; }
    .#{category.slug} aside  { background-color: lighten(##{category.color}, 0.5); }

有关我如何实现这一目标的任何提示?

要记住的事情:

  • 我不希望内联(在帖子中)样式表
  • 我使用HAML和SASS(SCSS风格)
  • 我运行Rails 3.1

1 个答案:

答案 0 :(得分:0)

使用Rails 3.1资产管道首先将代码作为ERB运行,然后作为Sass运行(因此文件名将类似于application.css.sass.erb)并为ERB提供一个可以迭代的变量,创造一些Sass。这会在你的情况下起作用吗?