Default implementation of resource_controller actions

Updated . Posted . Visible to the public.

jamesgolick / resource_controller at Github Show archive.org snapshot

module ResourceController
  module Actions
    
    def index
      load_collection
      before :index
      response_for :index
    end
    
    def show
      load_object
      before :show
      response_for :show
    rescue ActiveRecord::RecordNotFound
      response_for :show_fails
    end

    def create
      build_object
      load_object
      before :create
      if object.save
        after :create
        set_flash :create
        response_for :create
      else
        after :create_fails
        set_flash :create_fails
        response_for :create_fails
      end
    end

    def update
      load_object
      before :update
      if object.update_attributes object_params
        after :update
        set_flash :update
        response_for :update
      else
        after :update_fails
        set_flash :update_fails
        response_for :update_fails
      end
    end

    def new
      build_object
      load_object
      before :new_action
      response_for :new_action
    end

    def edit
      load_object
      before :edit
      response_for :edit
    end

    def destroy
      load_object
      before :destroy
      if object.destroy
        after :destroy
        set_flash :destroy
        response_for :destroy
      else
        after :destroy_fails
        set_flash :destroy_fails
        response_for :destroy_fails
      end
    end
    
  end
end

Important hook names:

index.before { } # before: index
new_action.before { } # before :new_action
create.before { } # before :create
# ...
destroy.after { } # after :destroy
# ...
index.wants.html { } # response_for :index
Profile picture of Martin Straub
Martin Straub
Last edit
Michael Leimstädtner
Keywords
order
License
Source code in this card is licensed under the MIT License.
Posted by Martin Straub to makandra dev (2010-09-01 12:57)