diff --git a/app/controllers/exercise_collections_controller.rb b/app/controllers/exercise_collections_controller.rb index 1d7c1782..cfb93a71 100644 --- a/app/controllers/exercise_collections_controller.rb +++ b/app/controllers/exercise_collections_controller.rb @@ -17,9 +17,10 @@ class ExerciseCollectionsController < ApplicationController end def create - @exercise_collection = ExerciseCollection.new(exercise_collection_params) + @exercise_collection = ExerciseCollection.new authorize! - create_and_respond(object: @exercise_collection) + @exercise_collection.save + update_and_respond(object: @exercise_collection, params: exercise_collection_params) end def destroy @@ -31,6 +32,7 @@ class ExerciseCollectionsController < ApplicationController end def update + authorize! update_and_respond(object: @exercise_collection, params: exercise_collection_params) end diff --git a/app/models/exercise.rb b/app/models/exercise.rb index b2b27af4..dbb38758 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -14,8 +14,8 @@ class Exercise < ActiveRecord::Base has_and_belongs_to_many :proxy_exercises has_many :user_proxy_exercise_exercises - has_many :exercise_collection_items - has_many :exercise_collections, through: :exercise_collection_items + has_many :exercise_collection_items, dependent: :delete_all + has_many :exercise_collections, through: :exercise_collection_items, inverse_of: :exercises has_many :user_exercise_interventions has_many :interventions, through: :user_exercise_interventions has_many :exercise_tags diff --git a/app/models/exercise_collection.rb b/app/models/exercise_collection.rb index a4a19f94..80461e23 100644 --- a/app/models/exercise_collection.rb +++ b/app/models/exercise_collection.rb @@ -1,9 +1,9 @@ class ExerciseCollection < ActiveRecord::Base include TimeHelper - has_many :exercise_collection_items + has_many :exercise_collection_items, dependent: :delete_all alias_method :items, :exercise_collection_items - has_many :exercises, through: :exercise_collection_items + has_many :exercises, through: :exercise_collection_items, inverse_of: :exercise_collections belongs_to :user, polymorphic: true def collection_statistics