module HasValid
Public Instance Methods
has_valid?(validated_attributes)
click to toggle source
# File lib/rails-has-valid.rb, line 7 def has_valid?(validated_attributes) # # Validate column names # raise ArgumentError unless validated_attributes.is_a?(Array) or validated_attributes.is_a?(Symbol) validated_attributes = [validated_attributes] if validated_attributes.is_a?(Symbol) validated_attributes = validated_attributes.map do |attribute| raise InvalidColumnNameException unless self.attribute_names.include?(attribute.to_s) attribute.to_sym end # # Clear previous validation errors # self.errors.clear # # Run validations # self.valid? # # Remove validation errors for attributes we don't want to validate # (self.errors.messages.keys - validated_attributes).each do |key| self.errors.delete(key) end errors.none? end
save_if_has_valid(validated_attributes)
click to toggle source
# File lib/rails-has-valid.rb, line 40 def save_if_has_valid(validated_attributes) has_valid?(validated_attributes) self.save(validate: false) if errors.none? errors.none? end
save_if_has_valid!(validated_attributes)
click to toggle source
# File lib/rails-has-valid.rb, line 47 def save_if_has_valid!(validated_attributes) has_valid?(validated_attributes) if errors.none? self.save(validate: false) else raise ActiveRecord::RecordInvalid.new(self) end end
update_attributes_if_has_valid(attributes, validated_attributes)
click to toggle source
# File lib/rails-has-valid.rb, line 57 def update_attributes_if_has_valid(attributes, validated_attributes) self.attributes = attributes save_if_has_valid(validated_attributes) end
update_attributes_if_has_valid!(attributes, validated_attributes)
click to toggle source
# File lib/rails-has-valid.rb, line 62 def update_attributes_if_has_valid!(attributes, validated_attributes) self.attributes = attributes save_if_has_valid!(validated_attributes) end