如何使用除非条件,不占用空间?

时间:2014-07-04 16:00:36

标签: 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 %>

使用除外的问题是剪辑没有显示的空白区域。我怎么能拥有它,以便没有空格,有缩略图的剪辑只是移动并获取空的缩略图剪辑空间?

换句话说,它就像没有缩略图的剪辑仍然存在,但图像和标题只是没有显示。我喜欢这样,带缩略图的剪辑会在剪辑的位置没有缩略图,所以没有空格。

谢谢!

1 个答案:

答案 0 :(得分: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 %>