я следующий HTML кодRefactor повторяющийся вид HTML в каждую петлю для Руби
<div class="col-xs-1">
<img src="/assets/X.jpg" class="img-responsive" alt="X">
<h6>X</h6>
</div>
<div class="col-xs-1">
<img src="/assets/Y.jpg" class="img-responsive" alt="Y">
<h6>Y</h6>
</div>
<div class="col-xs-1">
<img src="/assets/Z.jpg" class="img-responsive" alt="Z">
<h6>Z</h6>
</div>
...
Как вы можете видеть, что есть тонна избыточности (тем более, что это на самом деле повторение 10+ раз не только 3 я здесь). Я пытаюсь продумать, как сделать что-то подобное в СУШЕ каждом цикле, но я немного затруднился.
Первоначально я думал, что просто объявить в контроллере для этой точки зрения:
@images = ["X", "Y", "Z"]
А потом в представлении сделать
<% @images.each do |image| %>
<div class="col-xs-1">
<img src="/assets/#{image}.jpg" class="img-responsive" alt="#{image}">
<h6>"#{image}"</h6>
</div>
<% end %>
Но этот синтаксис не должен быть прав, так как все изображения показывают сломанной. Любые мысли о том, что я делаю неправильно?
Кроме того, если это оказалось не очень эффективным способом рефакторинга, я очень открыт для предложений!
Совершенная, спасибо! – james
быстрый вопрос, я экстраполирую правила интерполяции из вашего ответа и из того, что знаю ... теперь скажем, что я хочу, чтобы изображение ссылалось на заранее заданный путь. Например, если изображение получило название «Голубое небо», путь должен быть «photographer_the_blue_sky_path». Поэтому я пишу '" class = "thumbnail"> ', но это создает «ожидающая») ошибка. Вы можете легко понять, что не так? – james
Попробуйте: "class =" thumbnail ">'. Чтобы очистить путаницу, интерполяция работает для любого выражения ruby внутри '# {}', которое завернуто двойными кавычками. – vee