簡體   English   中英

如何通過rails的index.html.erb中的created_at而不是updated_at顯示數據順序?

[英]How to show data order by created_at in index.html.erb in rails instead of updated_at ?

我有點不好意思,我無法弄清楚這一點,但是index.html.erb顯示了updated_at的一些數據順序,而我想按created_at的順序顯示它,頂部是最新的。 我怎樣才能做到這一點 ?

我的index.html.erb是標准的

<% @products do |product| %>
  <%= product.name %>
  <%= link_to 'Edit', edit_product_path(@product) %>
<% end %>

根據定義@products的方式,還可以使用訂單,如下所示:

Product.order('created_at DESC')

這將顯示所有產品,並按created_at降序排序。

但是,例如,如果您使用Product.all.order('created_at DESC'),它將無法正常工作,因為.all將結果轉換為數組。 在這種情況下,您需要使用sort_by,如其他建議的那樣。

只要您不在陣列上使用Order,它就可以在您的模型中使用。

寫在你的控制器

@products = @products.sort_by {|obj| obj.created_at }.reverse

我認為這應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM