Class: AtLeastOneGroupValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/validators/at_least_one_group_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ AtLeastOneGroupValidator

Returns a new instance of AtLeastOneGroupValidator.



4
5
6
7
# File 'lib/validators/at_least_one_group_validator.rb', line 4

def initialize(opts = {})
  @opts = opts
  @invalid_groups = []
end

Instance Method Details

#error_messageObject



20
21
22
23
24
25
26
# File 'lib/validators/at_least_one_group_validator.rb', line 20

def error_message
  if @invalid_groups.empty?
    I18n.t("site_settings.errors.at_least_one_group_required")
  else
    I18n.t("site_settings.errors.invalid_group")
  end
end

#valid_value?(val) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
17
18
# File 'lib/validators/at_least_one_group_validator.rb', line 9

def valid_value?(val)
  @invalid_groups = []

  return false if val.blank?

  group_ids = val.to_s.split("|").map(&:to_i)

  @invalid_groups = group_ids - Group.where(id: group_ids).pluck(:id)
  @invalid_groups.empty?
end