Ich habe einige Probleme mit erstellen Graph mit Morris.js Bibliothek. Ich habe eine Sport-App erstellt und jedes Training hat einige Werte. Einer von ihnen ist "Training" es bedeutet Art des Trainings ("Laufen", "Schwimmen", "Radfahren"). Ich möchte Liniendiagramm mit Datum und Abstand anzeigen, aber für bestimmte Art von Training, zum Beispiel "Running". Ich habe ein allgemeines Diagramm mit allen Daten und Entfernungen erstellt, aber wenn ich versuche, ein Diagramm für einen bestimmten Typ zu erstellen, wird nicht das richtige angezeigt, sondern ein Diagramm mit der Summe aller Laufdistanzen für jeden Tag (horizontale Linie). Ich weiß nicht, wie Linie zu beheben in workouts_helper.rb Entfernung: Workout.where (Training: "Running"). Sum (: Entfernung)Morris.js wie man ein Diagramm für einen bestimmten Typ erstellt
workouts_helper.rb:
def running_chart_data
(3.weeks.ago.to_date..Date.today).map do |date|
{
date: date,
distance: Workout.where(workout: "Running").sum(:distance)
}
end
end
application.html.erb:
<script>
new Morris.Line({
element: 'running_chart',
resize: true,
data: $('#running_chart').data('running'),
xkey: 'date',
ykeys: ['distance'],
labels: ['Distance']
});
</script>
index.html.erb:
<h1>Last 3 weeks running graph</h1>
<%= content_tag :div, "", id: "running_chart", data: {running: running_chart_data} %>
„Abstand“ ist meine Spalte. Ich habe den Helfer-Code geändert, aber jedes Mal bekomme ich eine horizontale Linie - jeden Tag habe ich eine Summe von "Running" Abstand. – Morgan
Siehe das letzte Beispiel, das ich hinzugefügt habe ... denke, dass das dein Problem sein könnte. – dinjas
Sie rocken dinjas;) Ich muss "created_at" zu "date" geändert haben, denn wenn ich etwas Training mit Datum aus der Vergangenheit hinzufüge, addiere es die ganze Zeit Distanz zum tatsächlichen Datum, aber es war nicht das Problem. Danke für die Hilfe :) – Morgan