class StateMachines::AuditTrail::Backend::ActiveRecord
Public Class Methods
new(transition_class, owner_class, options = {})
click to toggle source
Calls superclass method
# File lib/state_machines/audit_trail/backend/active_record.rb, line 4 def initialize(transition_class, owner_class, options = {}) super @association = transition_class.to_s.tableize.split('/').last.to_sym assoc_options = {class_name: transition_class.to_s}.merge(options.slice(:as)) owner_class.has_many(@association, **assoc_options) unless owner_class.reflect_on_association(@association) end
Public Instance Methods
persist(object, fields)
click to toggle source
# File lib/state_machines/audit_trail/backend/active_record.rb, line 11 def persist(object, fields) # Let ActiveRecord manage the timestamp for us so it does the right thing with regards to timezones. if object.new_record? object.send(@association).build(fields) else object.send(@association).create(fields) end nil end