Skip to content

Instantly share code, notes, and snippets.

@stephenbaidu
Created May 11, 2018 00:40
Show Gist options
  • Save stephenbaidu/ce351c3819620e26d937234fbcce8ed5 to your computer and use it in GitHub Desktop.
Save stephenbaidu/ce351c3819620e26d937234fbcce8ed5 to your computer and use it in GitHub Desktop.
module Resourcify
extend ActiveSupport::Concern
included do
before_action :set_resource, only: [:show, :update, :destroy]
end
def index
@resources = resource_class.all
end
def create
@resource = resource_class.new(create_params)
@resource.save!
render :show, status: :created
end
def show
end
def update
@resource.update!(update_params)
render :show, status: :ok
end
def destroy
@resource.destroy
head :no_content
end
private
def resource_class
controller_name.classify.constantize
end
def set_resource
@resource = resource_class.find(params[:id])
end
def resource_params
raise NotImplementedError
end
def create_params
resource_params
end
def update_params
resource_params
end
end
@stephenbaidu
Copy link
Author

Make sure to put include Resourcify after other controller callbacks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment