2011-09-22 82 views
0

我有一個應用程序,有一些類別:番茄,橙,香蕉。 每個類別都有自己的顏色保存在數據庫中:FF0000,FF6600,FFFF00。 應用中還有一些屬於某個類別的帖子。預處理SCSS與HAML

我想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

回答

0

使用Rails 3.1資產管道首先將代碼作爲ERB運行,然後作爲Sass運行(因此文件名將類似於application.css.sass.erb),併爲ERB創建一個變量供您迭代並創建一些薩SS。這會在你的情況下工作嗎?

+0

在網站的標題部分我有'= stylesheet_link_tag'categories''。在'app/assets/stylesheets'目錄中,我有名爲'categories.css.scss.erb'的文件。該文件具有ERB代碼來循環'@ categories'實例變量。運行時出現以下錯誤:'評估nil.each時發生錯誤'所以'@ categories'爲零。我相信'@ categories'不是零。 – Ivan