74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # TheModerator
 | |
| 
 | |
| [](https://travis-ci.org/gdott9/the_moderator)
 | |
| 
 | |
| Moderate fields before their insertion in the database by serializing and saving them into a separate 'moderations' table.
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| Add this line to your application's Gemfile:
 | |
| 
 | |
|     gem 'the_moderator'
 | |
| 
 | |
| And then execute:
 | |
| 
 | |
|     $ bundle
 | |
| 
 | |
| Or install it yourself as:
 | |
| 
 | |
|     $ gem install the_moderator
 | |
| 
 | |
| Then use the generator for the migration and the basic `Moderation` model:
 | |
| 
 | |
|     $ rails generate the_moderator:install
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| To use `TheModerator`, you need to include `TheModerator::Model` in the models you want to moderate.
 | |
| 
 | |
| ```ruby
 | |
| class Article
 | |
|   include TheModerator::Model
 | |
| end
 | |
| ```
 | |
| 
 | |
| The `Moderation` model added by the genenrator is used to access the moderations.
 | |
| 
 | |
| ### Moderate attributes
 | |
| 
 | |
| This gem adds 3 methods to your models.
 | |
| 
 | |
| - `moderate`
 | |
| - `moderated?`
 | |
| - `moderated_fields_for(assoc)`
 | |
| 
 | |
| ### Manage moderations
 | |
| 
 | |
| To list pending moderations, you can use the `Moderation` model
 | |
| 
 | |
| ```ruby
 | |
| Moderation.all
 | |
| ```
 | |
| 
 | |
| You can access the moderations for a specific object with
 | |
| 
 | |
| ```ruby
 | |
| post = Post.last
 | |
| post.moderations
 | |
| ```
 | |
| 
 | |
| A `Moderation` instance has 4 methods:
 | |
| - `moderation.data` returns a hash of the moderated attributes
 | |
| - `moderation.data_display` returns a user-friendly hash to display the moderated attributes
 | |
| - `moderation.preview`
 | |
| - `moderation.accept` modifies the moderated object with the specified attributes and saves it
 | |
| - `moderation.discard` destroys the moderation
 | |
| 
 | |
| ## Contributing
 | |
| 
 | |
| 1. Fork it
 | |
| 2. Create your feature branch (`git checkout -b my-new-feature`)
 | |
| 3. Commit your changes (`git commit -am 'Add some feature'`)
 | |
| 4. Push to the branch (`git push origin my-new-feature`)
 | |
| 5. Create new Pull Request
 |