class Copyable::Saver
Public Class Methods
direct_sql_insert!(new_model)
click to toggle source
# File lib/copyable/saver.rb, line 4 def self.direct_sql_insert!(new_model) new_model.send(:_create_record) # bypass all callbacks and validations end
direct_sql_update!(new_model)
click to toggle source
# File lib/copyable/saver.rb, line 8 def self.direct_sql_update!(new_model) new_model.send(:_update_record) # bypass all callbacks and validations end
save!(new_model, skip_validations=false)
click to toggle source
this is the algorithm for saving the new record
# File lib/copyable/saver.rb, line 13 def self.save!(new_model, skip_validations=false) unless skip_validations || new_model.valid?(:create) raise(ActiveRecord::RecordInvalid.new(new_model)) end if new_model.class.all_callbacks_disabled && new_model.id.nil? self.direct_sql_insert!(new_model) elsif new_model.class.all_callbacks_disabled self.direct_sql_update!(new_model) else new_model.save! end end