class RailsCoreExtensions::TransferRecords
Public Class Methods
new(parent, klass, options = {})
click to toggle source
# File lib/rails_core_extensions/transfer_records.rb, line 3 def initialize(parent, klass, options = {}) @parent = parent @klass = klass @options = options end
Public Instance Methods
transfer_from(objects)
click to toggle source
# File lib/rails_core_extensions/transfer_records.rb, line 9 def transfer_from(objects) record_ids = objects.flat_map { |o| o.send(@klass.name.underscore + '_ids') } unless record_ids.empty? @options[:foreign_key] ||= @parent.class.name.underscore + '_id' update_options = @options.except(:foreign_key) update_options[@options[:foreign_key]] = @parent.id @klass.where(id: record_ids).update_all(update_options) end end