active_preview is a Ruby on Rails plugin that makes it easy to create previews of updates to records. The previews don't interact with the database but otherwise behave like ActiveRecord objects.
To preview a model, first run the generator:
$ rails generate active_preview:preview --model MyModel
This will create my_model_preview.rb
in app/previews
. If you have methods that touch the database in your model that need to be used with previewed data, override them there.
Next, add the #preview
method to your model:
class MyModel < ActiveRecord::Base
include ActivePreview::Previewing
end
Now you can pass an attribute hash or ActionController::Parameters
object to my_model.preview
to get a preview object with updated attributes that behaves exactly like your model.
For models with associations, run the generator for each associated model and add include ActivePreview::Previewing
to each model class.
Add this line to your application's Gemfile:
gem 'active_preview'
And then execute:
$ bundle
Or install it yourself as:
$ gem install active_preview
Contribution directions go here.
The gem is available as open source under the terms of the MIT License.