2011-10-06 150 views
0

我确定我只是这样做的错误方式,但我不能得到这与资产的工作:预编译和即时消息不知道它应该是均匀的。预编译问题导轨资产

#plant.css.erb 
<% 
plants = Plant.all 
if plants 
    plants.each do |plant| 
%> 
    .plant_<%= plant.id %> { 
     background-color: #<%= plant.color %>; 
     padding: 1px; 
    } 
<% 
    end 
end 
%> 

我得到这个错误:

Invalid CSS after "...kground-color: ": expected expression (e.g. 1px, bold), was "#;" 
/rails/ship/releases/20111006191503/app/assets/stylesheets/application.css) 

我感谢所有帮助,任何人都可以给。如果我没有提供足够的信息,请告诉我需要什么,我会很乐意提供。

回答

1

我不确定你的语法有什么问题,但是整个方法似乎与规范有点颠倒。通常,不会为每个对象创建新的CSS规则。为什么不能像

# views/plants/index.html.erb 
<div class="plant plant-<%= plant.color %> 
... 
</div> 

,然后在你的CSS文件(无需ERB)定义短短类

# plant.css 
plant_red {background-color: #F00;} 
plant_blue {background-color: #00F;} 

也许你不这样做,因为没有有限数量的不同颜色的植物?例如。你有一个全彩的彩虹?在这种情况下,去“旧学校”并使用样式标记真的更合适:

# views/plants/index.html.erb 
<div class="plant" style="background-color:#<%= plant.color %>" > 
+0

我跟着你的风格建议,因为颜色是由用户动态选择的。谢谢 –