Good for auditing or versioning for Active Admin (using PaperTrail)
Add this line to your application's Gemfile:
gem 'active_admin_versioning'
And then execute:
$ bundle
In some cases you may need to display some extra or formatted text in whodunnit. For example whodunit is an ID of your user. And you want to display not just a number, but his E-mail.
Create configuration 'config/initializers/active_admin_versionings.rb'
ActiveAdminVersioning.configure do |config|
config.whodunnit_attribute_name = :display_whodunnit
config.display_version_diff = false # default false
config.display_version_link = true # default true
end
- When
display_version_link
is true, it s activate active admin Versions pages - When
display_version_diff
is true, it s add a panel to show pages to see all version diff
In you model:
has_paper_trail class_name: 'MyPaperTrail'
class MyPaperTrail < PaperTrail::Version
def display_whodunnit
AdminUser.find(whodunnit).email
end
end
This alternative "whodunnit" will only be visible in "Version" sidebar and "Version" page.
- Add necessary gems to
Gemfile
andbundle
:
gem 'activeadmin', github: 'activeadmin'
gem 'devise'
gem 'inherited_resources', github: 'activeadmin/inherited_resources'
gem 'paper_trail', '~> 5.2.0'
gem 'active_admin_versioning'
- Install Active Admin and Paper Trail:
$ bin/rails generate active_admin:install
$ bin/rails generate paper_trail:install
$ bin/rails db:create db:migrate db:seed
- Add module of Paper Trail to
AdminUser
:
class AdminUser < ApplicationRecord
has_paper_trail
end
- Run server
bin/rails server
and open localhost:3000
install gem:
bundle install
setup spec:
RAILS_ENV=test bundle exec rake setup
run spec:
bundle exec rspec