Fix existing specs for Exercise
This commit is contained in:
@ -239,18 +239,18 @@ class ExercisesController < ApplicationController
|
|||||||
private :handle_file_uploads
|
private :handle_file_uploads
|
||||||
|
|
||||||
def handle_exercise_tips
|
def handle_exercise_tips
|
||||||
if exercise_params
|
return unless exercise_params && exercise_params[:tips]
|
||||||
begin
|
|
||||||
exercise_tips = JSON.parse(exercise_params[:tips])
|
begin
|
||||||
# Order is important to ensure no foreign key restraints are violated during delete
|
exercise_tips = JSON.parse(exercise_params[:tips])
|
||||||
previous_exercise_tips = ExerciseTip.where(exercise: @exercise).select(:id).order(rank: :desc).ids
|
# Order is important to ensure no foreign key restraints are violated during delete
|
||||||
remaining_exercise_tips = update_exercise_tips exercise_tips, nil, 1
|
previous_exercise_tips = ExerciseTip.where(exercise: @exercise).select(:id).order(rank: :desc).ids
|
||||||
# Destroy initializes each object and then calls a *single* SQL DELETE
|
remaining_exercise_tips = update_exercise_tips exercise_tips, nil, 1
|
||||||
ExerciseTip.destroy(previous_exercise_tips - remaining_exercise_tips)
|
# Destroy initializes each object and then calls a *single* SQL DELETE
|
||||||
rescue JSON::ParserError => e
|
ExerciseTip.destroy(previous_exercise_tips - remaining_exercise_tips)
|
||||||
flash[:danger] = "JSON error: #{e.message}"
|
rescue JSON::ParserError => e
|
||||||
redirect_to(edit_exercise_path(@exercise))
|
flash[:danger] = "JSON error: #{e.message}"
|
||||||
end
|
redirect_to(edit_exercise_path(@exercise))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
private :handle_exercise_tips
|
private :handle_exercise_tips
|
||||||
|
Reference in New Issue
Block a user