Administrate::Field::Aasm
Custom Administrate Field for AASM gem.
DEMO
Installation
Add this line to your application's Gemfile:
gem 'administrate-field-aasm'And then execute:
$ bundleAdd to your dashboard:
ATTRIBUTE_TYPES = [
state: Field::Aasm
]
SHOW_PAGE_ATTRIBUTES = %i[
...
state
...
]Add to your routes.rb
resources :orders do
member do
put '/:event', to: 'orders#transit_state'
end
endAdd to your controller
def transit_state
if requested_resource.try("may_#{params[:event]}?".to_sym)
requested_resource.try(params[:event].to_sym)
requested_resource.save
redirect_to admin_order_path(requested_resource), notice: "#{params[:event].humanize} successfully."
else
redirect_to admin_order_path(requested_resource), alert: "#{params[:event].humanize} fail."
end
endLicense
The gem is available as open source under the terms of the MIT License.