Sha256: 977b4d7f00b0d133e600ee69e9557da7cb4527bab28b9ff176ea7fe8180d73d8
Contents?: true
Size: 1.05 KB
Versions: 40
Compression:
Stored size: 1.05 KB
Contents
module ForestLiana class BelongsToUpdater attr_accessor :errors def initialize(resource, association, params) @resource = resource @association = association @params = params @data = params['data'] @errors = nil end def perform begin @record = @resource.find(@params[:id]) if (SchemaUtils.polymorphic?(@association)) if @data.nil? new_value = nil else association_klass = SchemaUtils.polymorphic_models(@association).select { |a| a.name == @data[:type] }.first new_value = association_klass.find(@data[:id]) if @data && @data[:id] end else new_value = @association.klass.find(@data[:id]) if @data && @data[:id] end @record.send("#{@association.name}=", new_value) @record.save rescue ActiveRecord::SerializationTypeMismatch => exception @errors = [{ detail: exception.message }] rescue => exception @errors = [{ detail: exception.message }] end end end end
Version data entries
40 entries across 40 versions & 1 rubygems