Project

General

Profile

Download (1.03 KB) Statistics
| Branch: | Tag: | Revision:
#TODO: remove this when there is a gem or a fix for rails that validates nested attributes correctly
module ParameterValidators
extend ActiveSupport::Concern

included do
validate :validate_parameters_names
end

def validate_parameters_names
names = []
errors = false
self.send(parameters_symbol).each do |param|
next unless param.new_record? # normal validation would catch this
if names.include?(param.name)
param.errors[:name] = _('has already been taken')
errors = true
else
names << param.name
end
end
self.errors[parameters_symbol] = _('Please ensure the following parameters name are unique') if errors
end

def parameters_symbol
case self
when Operatingsystem then :os_parameters
when Hostgroup then :group_parameters
when Host::Managed then :host_parameters
when Domain then :domain_parameters
when Organization then :organization_parameters
when Location then :location_parameters
end
end
end
(16-16/23)