Files
fizzy/app/models/bubble/eventable.rb
T
2024-10-23 17:29:24 -06:00

20 lines
555 B
Ruby

module Bubble::Eventable
extend ActiveSupport::Concern
included do
has_many :events
after_create -> { track_event :created }
end
private
def track_event(action, creator: Current.user, rollup: latest_rollup, **particulars)
transaction do
Event.create! action: action, creator: creator, particulars: { creator_name: creator.name }.merge(particulars), rollup: rollup
thread_entries.create! threadable: rollup
end
rescue ActiveRecord::RecordNotUnique
# rollup has already been threaded
end
end