Rails 5 отображает количество результатов при группировании

#ruby-on-rails #pagination

#ruby-on-rails #разбивка на страницы

Вопрос:

Я создаю приложение, используя разбиение на страницы и поиск.

Мой контроллер:

  def index

    @q = Stockdiary.all.ransack(params[:q])
    @stockdiaries =   @q.result.joins(:product).group(:PRODUCT).select("SUM(UNITS) AS UNITS, SUM(PRICE) AS PRICE").paginate(:page => params[:page], :per_page => 30)

  end
  

Тогда, на мой взгляд, у меня есть это, чтобы показать количество найденных записей:

   <div> <%= pluralize(@stockdiaries.size, 'stockdiary') %> found</div>
  

Но поскольку я применяю group, это показывает

 {"1"=>6, "103"=>2, "104"=>1, "106"=>2, "115"=>2, "116"=>1, "118"=>1, "122"=>1, "124"=>2, "13"=>6, "130"=>1, "133"=>3, "137"=>2, "138"=>2, "14"=>2, "140"=>1, "142"=>1, "144"=>1, "145"=>1, "146"=>2, "148"=>3, "149"=>1, "151"=>3, "152"=>3, "154"=>4, "16"=>4, "160"=>1, "161"=>1, "163"=>2, "166"=>1, "170"=>2, "174"=>1, "18"=>2, "19"=>1, "2"=>1, "25"=>3, "27"=>2, "29"=>1, "31"=>1, "33"=>1, "34"=>1, "43"=>2, "49"=>2, "56"=>1, "70"=>6, "73"=>4, "83"=>1, "9"=>2, "9e249a40-82d3-499f-a2b8-9f8613ecfe81"=>2, "bcea85d5-2596-4e41-8245-e520bc2b07a8"=>2} stockdiaries found
  

который показывает количество записей для каждого продукта (поскольку он сгруппирован по продукту). Очевидно, что мне нужно показывать только общее количество записей, а не для каждого продукта.

Как это исправить?

Ответ №1:

Вы можете использовать sum

 <div><%= pluralize(@stockdiaries.size.values.sum, 'stockdiary') %> found</div>