2

私は以下を実行するあらゆる可能な方法を試してきました:

@events.group(:name).count

私のindex.html.erbページでchartkickを使用してイベントの総数を表示します。nil:method や each_pair unknown method などのエラーが発生し続けます。グループまたはカウントに相当するモンゴイドは何でしょうか? 私が試してみました:

@events.only(:name).group 
@events.where(name: @events.name).aggregate
@events.only(:name).aggregate
@events.only(:name).group_by(&:_id)

何がうまくいくかわからない...どんな助けでも大歓迎です。私のコントローラーは次のとおりです。

class EventsController < ApplicationController

  before_filter :authenticate_user!

  def index
    @domain = Domain.find_by(id: params[:domain_id])
    @events = @domain.events
  end
end

私の見解は次のとおりです。

<h1>Events</h1>


<%= line_chart @events.all.aggregrate %>

<%= line_chart @events.group_by_day(&:created_at).count %>

Rails 4 と Mongoid 4.0 および Chartkick を使用しています。

4

1 に答える 1

4

これに対する答えを見つけました...基本的に、mongoDBクエリを使用する必要がありました...理由はわかりません..しかし、これが私がしたことです

<%= line_chart Event.collection.aggregate("$group" => { "_id" => "$name", count: {"$sum" =>  1} } )%>

<%= line_chart Event.collection.aggregate({"$group" => {"_id" => {"name" => "$name", "created_at" => "$created_at"}}}, {"$group" => {"_id" => "$_id", count: {"$sum" => 1 } } } )%>
于 2014-07-19T01:05:05.913 に答える