Do not consider attributes using the :unless option as required

Remove some of the factories introduced in commit 66334b5 as now we do
not need them anymore.

Co-Authored-By: Javi Martín <35156+javierm@users.noreply.github.com>
This commit is contained in:
Senén Rodero Rodríguez
2021-11-05 11:53:46 +01:00
parent 21170d0f24
commit 30afb64bac
7 changed files with 30 additions and 13 deletions

View File

@@ -32,14 +32,19 @@ module Globalizable
private
def required_attribute?(attribute)
presence_validators = [ActiveModel::Validations::PresenceValidator,
ActiveRecord::Validations::PresenceValidator]
attribute_validators(attribute).any? { |validator| presence_validators.include? validator }
self.class.validators_on(attribute).any? do |validator|
validator.kind == :presence && !conditional_validator?(validator)
end
end
def attribute_validators(attribute)
self.class.validators_on(attribute).map(&:class)
def conditional_validator?(validator)
return false unless validator.options[:unless]
if validator.options[:unless].to_proc.arity.zero?
instance_exec(&validator.options[:unless])
else
validator.options[:unless].to_proc.call(self)
end
end
def check_translations_number