Sha256: 5baf68e9d70bb543b69ec3cecae7587cf80ef6e97fd5524a9555d3c24143e4d8
Contents?: true
Size: 1.28 KB
Versions: 11
Compression:
Stored size: 1.28 KB
Contents
module ForestLiana class ResourceUpdater attr_accessor :record def initialize(resource, params) @resource = resource @params = params end def perform @record = @resource.find(@params[:id]) if Rails::VERSION::MAJOR == 4 @record.update_attributes!(resource_params.permit!) else @record.update_attributes!(resource_params, without_protection: true) end set_has_many_relationships end def resource_params ResourceDeserializer.new(@resource, @params[:resource]).perform end def set_has_many_relationships if @params['data']['relationships'] @params['data']['relationships'].each do |name, relationship| data = relationship['data'] association = @resource.reflect_on_association(name) if [:has_many, :has_and_belongs_to_many].include?( association.try(:macro)) if data.is_a?(Array) data.each do |x| existing_records = @record.send(name) new_record = association.klass.find(x[:id]) if !existing_records.include?(new_record) existing_records << new_record end end end end end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems