8000 GitHub - k3integrations/paper_trail-rails: Integrate with rails console and migrations. In rails console, ask who is making change and why. Records the command.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Integrate with rails console and migrations. In rails console, ask who is making change and why. Records the command.

License

Notifications You must be signed in to change notification settings

k3integrations/paper_trail-rails

 
 

Repository files navigation

PaperTrail::Rails

Gem Version Yard Docs

An extension to PaperTrail that adds some useful automatic integrations with Rails:

  • Automatically record which migration made the change in the version record (in the command attribute) when migrations make changes to data.
  • Automatically record rails console as the command in the version record (in the command attribute).
  • Automatically record the source location that initiated the change so you can figure out what caused caused the change later when inspecting a version record
  • (Optional) Never forget to set the actor (whodunnit) when making changes in the rails console. It will prompt you to choose an actor user as soon as you try to make a change that would record a PaperTrail Version. (Enter system if you don't want any particular user recorded as the actor.)
  • (Optional) Automatically ask for a reason whenever you make a change

Installation

Add this line to your application's Gemfile:

gem 'paper_trail-rails'

And then execute:

$ bundle

Add and run this migration:

class VersionsAddSourceLocationCommandReason < ActiveRecord::Migration[5.2]
  def change
    change_table :versions do |t|
      t.text    :source_location
      t.text    :command
      t.text    :reason
    end
    change_table :versions do |t|
      t.index   :command
      t.index   :reason
    end
  end
end

Configuration

Add to config/initializers/paper_trail.rb and change as needed:

PaperTrail::Rails.configure do |config|
  config.console.ask_for_user      = true
  config.console.require_user      = false
  config.console.auto_reset_user   = false

  config.console.ask_for_reason    = true
  config.console.require_reason    = false
  config.console.auto_reset_reason = true

  config.user_filter = ->(users) { users.admins }
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/TylerRick/paper_trail-rails.

About

Integrate with rails console and migrations. In rails console, ask who is making change and why. Records the command.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 98.9%
  • Shell 1.1%
0