我很尴尬,我无法弄清楚这一点,但index.html.erb显示了一些data_at的数据顺序,因为我想通过created_at订购,最新的一个在顶部。我怎样才能做到这一点 ?
我的index.html.erb是标准的
<% @products do |product| %>
<%= product.name %>
<%= link_to 'Edit', edit_product_path(@product) %>
<% end %>
答案 0 :(得分:2)
根据您定义@products的方式,您也可以使用订单,如:
Product.order('created_at DESC')
这将显示所有产品,并按降序排列created_at。
但是,如果您使用Product.all.order('created_at DESC'),它将无法工作,因为.all将结果转换为数组。在这种情况下,您需要使用sort_by,如另一个答案所示。
只要您没有在阵列上使用它,订单就可以在您的模型中使用。
答案 1 :(得分:1)
将此内容写入您的控制器
@products = @products.sort_by {|obj| obj.created_at }.reverse
我认为这可以解决你的问题。