#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4
Вопрос:
Однако у меня есть карусель с несколькими миниатюрами видеороликов… если пользователь не загружает миниатюру, но загружает клип, будет это уродливое изображение-заполнитель. Я хотел бы сделать так, чтобы, если пользователь не загружает миниатюру, клип вообще не отображался в карусели.
Я пытался сделать это с:
<% if @clips.any? %>
<div class="queue_mone">
<div class="jcarousel-skin-ie7">
<div style="position: relative;" class="">
<ul style="overflow: hidden; position: relative;" id="second-carousel" class="webcliplist first-and-second-carousel jcarousel-list jcarousel-list-horizontal">
<% @clips.each do |clip| %>
<li>
<%= link_to clip do %>
<%= image_tag(clip.thumbnail.url(:medium)) unless clip.thumbnail.blank? %>
<p style="padding-top:5px; font-family: 'SourceSansPro-Regular';"><%= clip.name unless clip.thumbnail.blank? %></p>
<% end %>
</li>
<% end %>
Проблема с использованием unless заключается в том, что есть пустое пространство, где клип не отображается. Как я могу сделать так, чтобы при отсутствии пустого пространства клип, в котором есть миниатюра, просто перемещался и занимал пустое место для миниатюр клипов?
Другими словами, это похоже на то, что клип без миниатюр все еще существует, но изображение и заголовок просто не отображаются. Я бы хотел, чтобы клип с миниатюрой помещался на место клипа без миниатюр, чтобы не было пробелов.
Спасибо!
Комментарии:
1. Можете ли вы загрузить вывод html сюда.
Ответ №1:
Здесь для вас есть несколько вариантов:
вариант № 1: нет <li>
, если нет миниатюры
<% @clips.each do |clip| %>
<% next if clip.thumbnail.blank? %>
<li>
<%= link_to clip do %>
<%= image_tag(clip.thumbnail.url(:medium)) %>
<p style="padding-top:5px; font-family: 'SourceSansPro-Regular';"><%= clip.name %></p>
<% end %>
</li>
<% end %>
вариант № 2: пустой <li>
, если нет миниатюры
<% @clips.each do |clip| %>
<li>
<% if clip.thumbnail.present? %>
<%= link_to clip do %>
<%= image_tag(clip.thumbnail.url(:medium)) %>
<p style="padding-top:5px; font-family: 'SourceSansPro-Regular';"><%= clip.name %></p>
<% end %>
<% end %>
</li>
<% end %>
вариант № 3: нет image_tag
, если нет миниатюры, НО ссылка заголовок
<% @clips.each do |clip| %>
<li>
<%= link_to clip do %>
<%= image_tag(clip.thumbnail.url(:medium)) if clip.thumbnail.present? %>
<p style="padding-top:5px; font-family: 'SourceSansPro-Regular';"><%= clip.name %></p>
<% end %>
</li>
<% end %>