diff --git a/src/models/test.rb b/src/models/test.rb
index ccc92af..8022cd6 100644
--- a/src/models/test.rb
+++ b/src/models/test.rb
@@ -7,7 +7,7 @@ class Test < Sequel::Model
many_to_one :hardware
many_to_many :benchmarks
- def has_benchmark(benchmark_id)
+ def benchmark?(benchmark_id)
return benchmarks_dataset.where(Sequel[:benchmarks][:id] => benchmark_id).any?
end
diff --git a/src/routes/test.rb b/src/routes/test.rb
index ce0a169..5299e68 100644
--- a/src/routes/test.rb
+++ b/src/routes/test.rb
@@ -69,19 +69,16 @@ class GameData < Sinatra::Base
description: params[:test_description]
)
- # create an array of the selected benchmarks
selected_benchmarks = Array(params[:test_benchmarks])
+
# remove benchmarks no longer associated with the test
- tst.benchmarks.each do |b|
- if not selected_benchmarks.include?(b)
- tst.remove_benchmark(b)
- end
+ tst.benchmarks.dup.each do |b|
+ tst.remove_benchmark(b.id) unless selected_benchmarks.include?(b.id)
end
+
# associate the benchmarks to the test
selected_benchmarks.each do |b|
- if not tst.has_benchmark(b)
- tst.add_benchmark(b)
- end
+ tst.add_benchmark(b) unless tst.benchmark?(b)
end
redirect "/test/#{tst.id}"
diff --git a/views/test/edit.erb b/views/test/edit.erb
index 59502e1..154ed86 100644
--- a/views/test/edit.erb
+++ b/views/test/edit.erb
@@ -28,7 +28,7 @@