预编译问题rails assets

时间:2011-10-06 19:19:10

标签: ruby-on-rails-3.1 precompile asset-pipeline

我确信我只是以错误的方式执行此操作,但我无法使用资产:预编译,我不确定它应该是否均匀。

#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 个答案:

答案 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 %>" >