我确信我只是以错误的方式执行此操作,但我无法使用资产:预编译,我不确定它应该是否均匀。
#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)
我感谢任何人都能给予的任何帮助。如果我没有提供足够的信息,请告诉我我需要什么,我很乐意提供。
答案 0 :(得分: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 %>" >