From 8b7ac451d08e1388848acbae38936b57d91dc47c Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Fri, 26 Jun 2015 18:44:46 +0300 Subject: [PATCH] Refactor object validator --- app/validators/object_count_validator.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/validators/object_count_validator.rb b/app/validators/object_count_validator.rb index 92830b1b0..d2d880fea 100644 --- a/app/validators/object_count_validator.rb +++ b/app/validators/object_count_validator.rb @@ -1,7 +1,9 @@ class ObjectCountValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) min, max = options[:min].call, options[:max].call - return if value.count { |i| !i.marked_for_destruction? }.between?(min, max) + values = value.reject(&:marked_for_destruction?) + + return if values.size.between?(min, max) association = options[:association] || attribute record.errors.add(association, :out_of_range, { min: min, max: max }) end