Module: PathUtilities::Form
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/path_utilities/form.rb,
lib/path_utilities/form/tracking_changes.rb,
lib/path_utilities/form/uniqueness_validator.rb,
lib/path_utilities/form/uniqueness_validator/mongoid.rb
Defined Under Namespace
Modules: TrackingChanges, UniquenessValidator
Instance Method Summary
collapse
Instance Method Details
#init_sync ⇒ Object
80
81
82
83
84
85
|
# File 'lib/path_utilities/form.rb', line 80
def init_sync
self.class.fields.keys.each do |field|
model_value = instance_model_for(field).send("#{field}")
send("#{field}=", model_value)
end
end
|
#instance_model_for(field) ⇒ Object
75
76
77
78
|
# File 'lib/path_utilities/form.rb', line 75
def instance_model_for(field)
model = self.class.fields[field].options[:klass].name.underscore.to_sym
models_mapping[model]
end
|
#main_record ⇒ Object
87
88
89
90
|
# File 'lib/path_utilities/form.rb', line 87
def main_record
self.class.model_name || fail('setup_model_name not set in form class')
models_mapping[self.class.model_name.name.to_sym]
end
|
#save ⇒ Object
58
59
60
61
62
63
64
65
66
|
# File 'lib/path_utilities/form.rb', line 58
def save
if valid?
sync
persist!
true
else
false
end
end
|
#sync ⇒ Object
68
69
70
71
72
73
|
# File 'lib/path_utilities/form.rb', line 68
def sync
self.class.fields.keys.each do |field|
form_field_value = send(field)
instance_model_for(field).send("#{field}=", form_field_value)
end
end
|
#validate_mapping! ⇒ Object
51
52
53
54
55
56
|
# File 'lib/path_utilities/form.rb', line 51
def validate_mapping!
self.class.models.each do |model|
next if models_mapping.keys.include?(model)
fail "#{model.to_s.camelize} not mapped on initialization"
end
end
|