From 426f0057605e3fedd8ffa45433428dfb25a0971c Mon Sep 17 00:00:00 2001 From: cedricnjanga Date: Wed, 7 Feb 2018 08:08:48 -0800 Subject: Simplify ccblock uniqueness validation --- app/controllers/compliance_control_blocks_controller.rb | 6 +++--- app/models/compliance_control_block.rb | 6 +----- 2 files changed, 4 insertions(+), 8 deletions(-) (limited to 'app') diff --git a/app/controllers/compliance_control_blocks_controller.rb b/app/controllers/compliance_control_blocks_controller.rb index 5236ad576..635b96c85 100644 --- a/app/controllers/compliance_control_blocks_controller.rb +++ b/app/controllers/compliance_control_blocks_controller.rb @@ -4,11 +4,11 @@ class ComplianceControlBlocksController < ChouetteController belongs_to :compliance_control_set actions :all, :except => [:show, :index] - after_action :check_duplicate, only: :create + after_action :check_duplicate, only: [:create, :update] def check_duplicate - unless @compliance_control_block.errors[:duplicate].empty? - flash[:error] = @compliance_control_block.errors[:duplicate].first + unless @compliance_control_block.errors[:condition_attributes].empty? + flash[:error] = I18n.t('activerecord.errors.models.compliance_control_block.attributes.condition_attributes.duplicate') end end diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index a73784be6..bc5d6fd4a 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -12,11 +12,7 @@ class ComplianceControlBlock < ActiveRecord::Base validates :transport_mode, presence: true validates :compliance_control_set, presence: true - validate def unique_transport_mode_submode_combination - same_cc_block = ComplianceControlBlock.where("compliance_control_set_id = ? AND condition_attributes->'transport_mode' = ? AND condition_attributes->'transport_submode' = ?", self.compliance_control_set_id, self.transport_mode, self.transport_submode) - return true if same_cc_block.empty? - errors.add(:duplicate, I18n.t('activerecord.errors.models.compliance_control_block.attributes.condition_attributes.duplicate')) - end + validates_uniqueness_of :condition_attributes, scope: :compliance_control_set_id def name ApplicationController.helpers.transport_mode_text(self) -- cgit v1.2.3