Giter Site home page Giter Site logo

mongo_trails's Introduction

Build Status

PaperTrail to MongoDB storage

Addon for PaperTrail

Track changes to your models, for auditing or versioning. See how a model looked at any stage in its lifecycle, revert it to any version, or restore it after it has been destroyed.

Limitations

  • PaperTrail-AssociationTracking are not supported in full.

How to Use

Add to Gemfile

  gem 'mongo_trails', git: 'https://github.com/noma4i/mongo_trails'

Create initializer like:

PaperTrail.config.mongo_config = { hosts: ['localhost:27017'], database: 'my_test_db' }
PaperTrail.config.mongo_prefix = lambda do
  'my_cool_prefix'
end

require 'mongo_trails/mongo_support/config'

Done!

Config Options

PaperTrail.config.mongo_config = { hosts: ['localhost:27017'], database: 'my_test_db' } - Options for MongoDB connection

PaperTrail.config.mongo_prefix = 'my_versions' # or Lambda - Versions prefix for MongoDB collection

PaperTrail.config.enable_sidekiq = false - Enable Sidekiq to proccess versions PaperTrail.config.sidekiq_worker = PaperTrail::WriteVersionWorker - Worker class PaperTrail.config.sidekiq_options = { queue: :default } - Options for Sidekiq

mongo_trails's People

Contributors

noma4i avatar rivasw avatar emaglio avatar zolotyx avatar

Stargazers

Arseniy Zharkov avatar  avatar Ramil avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

mongo_trails's Issues

Attempted to set a value for 'transaction_id' which is not allowed on the model PaperTrail::Version. summary: Without including Mongoid::Attributes::Dynamic in your model

PaperTrail uses 'transaction_id' attribute with version collection/document to track changes on to version_association collection.

Error message from Mongo_Trail: Attempted to set a value for 'transaction_id' which is not allowed on the model PaperTrail::Version. summary: Without including Mongoid::Attributes::Dynamic in your model and the attribute does not already exist in the attributes hash, attempting to call PaperTrail::Version#transaction_id= for it is not allowed. This is also triggered by passing the attribute to any method that accepts an attributes hash, and is raised instead of getting a NoMethodError. resolution: You can include Mongoid::Attributes::Dynamic if you expect to be writing values for undefined fields often.

The possible solutions are:
a. to add transaction_id attribute to mongo_trails/mongo_support/version.rb'
b. to include Mongoid::Attributes::Dynamic on mongo_trails/mongo_support/version.rb'

We are looking to enhance the mongo_trail to port our paper-trail audit onto mongodb.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.