See the aasm docs in the callbacks section.
...
aasm column: :state do
state :pending_approval, initial: true
state :active
state :pending_removal
after_all_transition :log_all_events
event :accept_approval, after: :log_approval do
transitions from: :pending_approval, to: :active
end
end
...
del log_all_events(user)
logger.debug "aasm #{aasm.current_event} from #{user}"
end
def log_approval(user)
logger.debug "aasm log_aproove from #{user}"
end
You can trigger events with the necessary parameters:
@post.accept_approval! current_user