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