class Frigate::Form::Synchronizer::Contract
Synchronizes form properties with model properties
Public Instance Methods
sync_properties_with_model_or_params()
click to toggle source
Synchronizes given model's attributes with form properties and associations:properties
# File lib/frigate/form/synchronizer/contract.rb, line 8 def sync_properties_with_model_or_params # # sync model properties with form properties # form.properties.each do |_prop| if form.model.respond_to?(_prop.name.to_sym) _prop.value = form.model.send(_prop.name.to_sym) else raise StandardError.new('form model does not have %s property' % [_prop.name]) end end # # sync model associations' properties with form associations' properties # form.associations.each do |_a| if form.model.respond_to?(_a.name.to_sym) and !form.model.send(_a.name.to_sym).nil? _a.properties.each do |_p| if form.model.send(_a.name.to_sym).respond_to?(_p.name.to_sym) _p.value = form.model.send(_a.name.to_sym).send(_p.name.to_sym) else _err_msg = 'form model %s association does not have %s property' % [_a.name, _p.name] raise StandardError.new(_err_msg) end end else if form.model.respond_to?(_a.name.to_sym) _err_msg = 'form model %s association is nil' % [_a.name] raise StandardError.new(_err_msg) else _err_msg = 'form model does not have %s association' % [_a.name] raise StandardError.new(_err_msg) end end end end