通过select()。distinct()排序?

时间:2019-10-06 08:26:02

标签: ruby-on-rails ruby

如何通过.select().distinct()订购?

控制器方法:

@line_items_sold = LineItem.where()
@vendor_line_items = @line_items_sold.select(:store_title).distinct

查看循环:

<% @vendor_line_items.map do |li| %>
    <%= li.store_title %>
    <%= @line_items_sold.where(store_title: li.store_title).count %>
<% end %>

我什至不知道从哪里开始。我想按唯一/不同count的{​​{1}}对循环进行排序。如何按实例变量自己的变量排序?

更新:使用PG

2 个答案:

答案 0 :(得分:1)

控制器

@vendor_line_items = LineItem.group(:store_title)
                             .select('COUNT(*) as count', 'store_title')
                             .order('count')

查看

<% @vendor_line_items.map do |li| %>
    <%= li.store_title %>
    <%= li.count %>
<% end %>

答案 1 :(得分:0)

我知道它是这样工作的:

如果有人有更好的方法,请告诉我

控制器

@vendor_line_items = LineItem.where().group(:store_title).order(count_all: :desc).count

观看次数:

<% @vendor_line_items.map do |li| %>
    <%= li[0] %>
    <%= li[1]%>
<% end %>