Commit d8e5486

mo khan <mo@mokhan.ca>
2017-02-18 00:02:38
extract scopes.
1 parent 0741d6a
Changed files (2)
app/models/training_history.rb
@@ -45,11 +45,7 @@ class TrainingHistory
   end
 
   def to_line_chart
-    user.workouts.joins(:exercise_sets).
-      where(exercise_sets: { exercise_id: exercise }).
-      group('workouts.occurred_at').
-      order('workouts.occurred_at desc').
-      maximum('target_weight')
+    user.workouts.grouped_by_occurrence(exercise).recent.maximum(:target_weight)
   end
 
   private
app/models/workout.rb
@@ -13,6 +13,11 @@ class Workout < ApplicationRecord
   scope :with_exercise, ->(exercise) do
     joins(:exercises).where(exercises: { id: exercise.id }).distinct
   end
+  scope :grouped_by_occurrence, ->(exercise) {
+    joins(:exercise_sets).
+      where(exercise_sets: { exercise_id: exercise }).
+      group('workouts.occurred_at')
+  }
 
   def train(exercise, target_weight, repetitions:, set: nil)
     all_sets = sets.for(exercise).to_a