проблемы прекомпиляции рельсов активов - PullRequest
0 голосов
/ 06 октября 2011

Я уверен, что просто делаю это неправильно, но я не могу заставить это работать с ресурсами: прекомпилировать, и я не уверен, что это должно быть даже.

#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 Ответ

1 голос
/ 06 октября 2011

Я не уверен, что не так с вашим синтаксисом, но подход в целом кажется немного перевернутым от нормы.Обычно нельзя создавать новое правило 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 %>" >  
...