ActiveCrudify
A dynamic resource controller for Rails > 3.0 that keeps your controllers nice and skinny.
ActiveCrudify was inspired from Crudify.
Installation
It's best to install ActiveCrudify by adding your Rails project's Gemfile:
# Gemfile
source "http://rubygems.org"
gem 'active_crudify', '>= 0.1.0'
Now run:
bundle install
Usage
In its most basic form, active_crudify is designed to be used like this:
class PostsController < ApplicationController
crudify :post
end
Say you want to customize an action that's being defined by crudify, simply overwrite it!
class PostsController < ApplicationController
crudify :post
def create
@post = Post.new(params[:post])
# ... the rest of your custom action
end
end
Ok that seems easy enough, but what if my action is just a tiny bit different? That's where the hook methods come in...
Hook Methods
`before_create`
`before_update`
`before_destroy`
`before_action`
You can define hook_methods in your controller just like this:
def before_create
do_something
supre
end
Notice: that before_create calls a second hook; before_action. This is a generic hook that fires before every crud method's call to save, update or destroy. This means it might be helpful for you to call super when overwriting this method so that the chain of hooks keeps firing.
Notice: if hook_methods return false, the action will return. Because in action it call hook_methods just like this:
def create
...
return if before_create === false
...
end
Here's an example of a before_create hook:
class PostsController < ApplicationController
crudify :post
def before_create
@post.author == current_user
super
end
end