0

In meiner Anwendung hinzufügen Ich habe Modelle Campaign & Map:Ruby on Rails - morris.js richtig für ein Vereinigungen

class Campaign < ActiveRecord::Base 
    has_many :maps, :dependent => :destroy 

class Map < ActiveRecord::Base 
    is_impressionable :counter_cache => true, :unique => :request_hash 
    belongs_to :campaign, :counter_cache => true, touch: true 

In meinem Map Modell, ich bin mit is_impressionable, die mit Installation kommt impressionist gem & Ich habe auch counter_cache hinzugefügt, die meine impressions_count für jeden Besuch aktualisiert (in meiner maps Tabelle).

In meiner campaigns#show Ansicht, versuchen Im ein Diagramm für maps impressions unter Verwendung morris.jshinzufügen (ich alle benötigten Dateien in meiner Anwendung hinzugefügt haben und das Diagramm sehen).

In meinem Diagramm möchte ich impressions auf campaign.maps zeigen, aber ich bekomme falsche Daten in mein Diagramm.

Also im Grunde, gehen Sie zu meiner impressions Tabelle, und sum alle Besuche, die meine campaign.maps hat am Geben Tag.

Dies ist, was ich bis jetzt haben:

module CampaignsHelper 
    def impressions_chart_data_campaign(maps) 
    (7.days.ago.to_date..Date.today).map do |date| 
     { 
      created_at: date, 
      impressions: Impression.where("date(created_at) =?", date).where(id: maps).size 
     } 
    end 
    end 
end 

Meine campaigns#show Ansicht:

= content_tag :div, "", id: "impressions_charts_double", data: {impressions: impressions_chart_data_campaign(@campaign.maps)} 

:javascript 
    Morris.Area({ 
    element: 'impressions_charts_double', 
    data: $('#impressions_charts_double').data('impressions'), 
    xkey: 'created_at', 
    ykeys: ['impressions'], 
    labels: ['Impressions'] 
    }); 

Als ich völlig falschen Zahlen bin erwähnt bekommen. Dies ist Abfragen in meiner Konsole:

DB Queries Ich bin mir nicht sicher, was ich falsch mache.

Antwort

2

Diese Zeile sieht verdächtig:

impressions: Impression.where("date(created_at) =?", date).where(id: maps).size 

Die where(id: maps) für Eindrücke auf der id Spalte auswählen, während Sie vermutlich wollen auf impressionable_type und impressionable_id Auswahl sein?

+0

OMG !! Danke @gwcodes, Das passiert, wenn deine Augen müde sind und du unscharf bist, haha. – Rubioli