Rails:更新后的图像更改位置

时间:2015-04-05 14:34:41

标签: html css position edit

我正在为朋友建立一个摄影网站,她希望能够上传,编辑和删除图像。 本地主机上的一切都还可以,但我注意到当我编辑图像时,它会改变位置并成为最后一个。有谁知道为什么会发生这种情况或者可以告诉我如何从他们创建的日期开始对图像进行排序?

index.html.erb:

<section class='container'>
  <article id='gallery'>
    <% PreviewPicture.all.each do |preview_picture| %>
      <a class="fancybox" rel="group" href="<%= preview_picture.picture.image.url(:original)%>" ><%= image_tag preview_picture.image.url(:original), :class => 'grayscale' %></a>
        <% if user_signed_in? %>
          <%= link_to "Delete #{preview_picture.id}", preview_picture_path(:id => preview_picture.id), method: :delete %>
          <%= link_to "Edit #{preview_picture.id}", edit_preview_picture_path(:id => preview_picture.id) %>
        <% end %>
    <% end %>
  </article>
</section>

<% if user_signed_in? %>
  <%= link_to "Add Picture", new_preview_picture_path, :class => "add_preview_picture" %>
<% end %>

gallery.css:

section.container {
  margin-top: 100px;
  text-align: center;
  width: 69%;
}

img.grayscale{ 
  margin: 1.5px 0px;
  filter: grayscale(100%);
  -webkit-filter: grayscale(100%);  /* For Webkit browsers */
  filter: gray;  /* For IE 6 - 9 */
}

img.grayscale:hover{ 
  filter: grayscale(0%);
  -webkit-filter: grayscale(0%);
  filter: none;
}

1 个答案:

答案 0 :(得分:0)

您需要在PreviewPicture模型上创建范围或类方法,按照创建或更新的日期对图片进行排序。

class PreviewPicture < ActiveRecord::Base
    def self.by_date
       order(created_at: :desc) // or order(updated_at: :desc)
    end
end

然后你可以像这样使用它:

PreviewPicture.by_date.each

最好在控制器中设置它,因此在视图中对应的PreviewPictureController操作:

@preview_pictures = PreviewPicture.by_date

然后遍历视图中的@preview_pictures实例变量。