Module: HasValid
Defined Under Namespace
Classes: InvalidColumnNameException
Instance Method Summary
collapse
Instance Method Details
#has_valid?(validated_attributes) ⇒ Boolean
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/rails-has-valid.rb', line 7
def has_valid?(validated_attributes)
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
self.errors.clear
self.valid?
(self.errors.messages.keys - validated_attributes).each do |key|
self.errors.delete(key)
end
errors.none?
end
|
#save_if_has_valid(validated_attributes) ⇒ Object
40
41
42
43
44
45
|
# 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) ⇒ Object
47
48
49
50
51
52
53
54
55
|
# 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) ⇒ Object
57
58
59
60
|
# 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) ⇒ Object
62
63
64
65
|
# 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
|