class <%= controller_class_name %>Controller < ApplicationController

before_action :set_<%= singular_table_name %>, only: [:show, :update, :destroy]

def index
  @<%= plural_table_name %> = <%= class_name %>.all
  render json: <%= class_name %>Serializer.new(@<%= plural_table_name %>)
end

def show
  render_resource @<%= singular_table_name %>
end

def create
  @<%= singular_table_name %> = <%= class_name %>.new(<%= singular_table_name %>_params)
  @<%= singular_table_name %>.save
  render_resource @<%= singular_table_name %>, status: :created, location: @<%= singular_table_name %>
end

def update
  @<%= singular_table_name %>.update(<%= singular_table_name %>_params)
  render_resource @<%= singular_table_name %>
end

def destroy
  @<%= singular_table_name %>.destroy
  render head: :ok
end

private

  # Use callbacks to share common setup or constraints between actions.
  def set_<%= singular_table_name %>
    @<%= singular_table_name %> = <%= class_name %>.find(params[:id])
  end

  # Only allow a trusted parameter "white list" through.
  def <%= singular_table_name %>_params
    params.permit(<%= attributes_list_string %>)
  end

end