Module: ActiveRecord::Persistence

Defined in:
lib/initializers/initialize.rb

Overview

Active Record Persistence

Instance Method Summary collapse

Instance Method Details

#update_attributes(attributes, options = {}) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/initializers/initialize.rb', line 56

def update_attributes(attributes, options = {})
  if timestamp_control = attributes.delete(:control_against_overwrite_by_another_user)
    if self.attributes['updated_at'] > timestamp_control
      errors[:base] << I18n.t('errors.messages.control_against_overwrite_by_another_user')
      return false
    end
  end
  with_transaction_returning_status do
    self.assign_attributes(attributes, options)
    save
  end
end

#update_attributes!(attributes, options = {}) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/initializers/initialize.rb', line 69

def update_attributes!(attributes, options = {})
  if timestamp_control = attributes.delete(:control_against_overwrite_by_another_user)
    if self.attributes['updated_at'] > timestamp_control
      errors[:base] << I18n.t('errors.messages.control_against_overwrite_by_another_user')
      return false
    end
  end
  with_transaction_returning_status do
    self.assign_attributes(attributes, options)
    save!
  end
end