Rails: Cloudinary gem - 默认图像未加载

Rails: Cloudinary gem - default image not loading

我正在开发一个类似 pinterest 的应用程序,使用 Cloudinary gem 和 Attachinary。我在我的 index.html.erb 文件中添加了一行,如果创建的 Pin 图没有或图像未正确加载,该文件应该显示默认图像。

 <% if pin.image.present?  %>
                  <%= link_to pin do %>
                  <%= cl_image_tag(pin.image.path) %>

            <% end %>    

             <% if pin.image.present? == false %>
                  <%= cl_image_tag('no-image-found_jqqruy') %>

                 <% end %>    

不幸的是,它不起作用 - 图钉的图像可以正确显示,但对于那些不能正确显示的图钉,只能看到一条粗线(jQuery 砌体网格)。我想知道使用 cloudinary 设置默认图像的正确方法是什么。我哪里做错了?这是我的完整索引文件:

<div id="pins" class="transitions-enabled">

       <% @pins.each do |pin| %>
          <div class="container">
          <div class="box panel panel-default">

             <% if pin.image.present?  %>
                  <%= link_to pin do %>
                  <%= cl_image_tag(pin.image.path) %>

            <% end %>    

             <% if pin.image.present? == false %>
                  <%= cl_image_tag('no-image-found_jqqruy') %>


             <% end %>    


            <div class="panel-body">

            <%= pin.description %> <br>
            <strong><%= pin.user.email if pin.user %></strong>

            <% if pin.user == current_user && user_signed_in? %>
                <div class="actions">
                  <%= link_to edit_pin_path(pin) do %>
                    <span class="glyphicon glyphicon-edit black"></span>
                      Edit
                         <% end %>

                  <%= link_to pin, method: :delete, data: { confirm: 'Are you sure?' } do %>
                     <span class="glyphicon glyphicon-trash black"></span>
                      Delete


                            </div>    

                         <% end %>     
                       <% end %>
                      </div>     
                  <% end %> 
                </div>  
            <% end %>            
          </div>

我只会补充一点,在我引入字形之前一切正常。

非常感谢您的帮助!

如果没有复制和粘贴错误,则缺少额外的 end 来终止 link_to pin do 语句。所以第一个if语句仍然有效,然后查询相反的if语句,这当然永远不会是真的。

我建议使用 if-else-end。

<% if pin.image.present?  %>
  <%= link_to pin do %>
    <%= cl_image_tag(pin.image.path) %>
  <% end %>    
<% else %>
  <%= cl_image_tag('no-image-found_jqqruy') %>
<% end %>