Skip to content

Instantly share code, notes, and snippets.

@dima4p
Created March 15, 2011 10:20
Show Gist options
  • Save dima4p/870555 to your computer and use it in GitHub Desktop.
Save dima4p/870555 to your computer and use it in GitHub Desktop.
lib/templates/rails/scaffold_controller/controller.rb
class <%= controller_class_name %>Controller < ApplicationController
# GET <%= route_url %>
# GET <%= route_url %>.xml
def index
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @<%= plural_table_name %> }
end
end
# GET <%= route_url %>/1
# GET <%= route_url %>/1.xml
def show
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @<%= singular_table_name %> }
end
end
# GET <%= route_url %>/new
# GET <%= route_url %>/new.xml
def new
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @<%= singular_table_name %> }
end
end
# GET <%= route_url %>/1/edit
def edit
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
end
# POST <%= route_url %>
# POST <%= route_url %>.xml
def create
@<%= singular_table_name %> = <%= orm_class.build(class_name, "params[:#{singular_table_name}]") %>
respond_to do |format|
if @<%= orm_instance.save %>
format.html { redirect_to(@<%= singular_table_name %>, :notice => t('<%= table_name %>.was_created.')) }
format.xml { render :xml => @<%= singular_table_name %>, :status => :created, :location => @<%= singular_table_name %> }
else
format.html { render :action => "new" }
format.xml { render :xml => @<%= orm_instance.errors %>, :status => :unprocessable_entity }
end
end
end
# PUT <%= route_url %>/1
# PUT <%= route_url %>/1.xml
def update
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
respond_to do |format|
if @<%= orm_instance.update_attributes("params[:#{singular_table_name}]") %>
format.html { redirect_to(@<%= singular_table_name %>, :notice => t('<%= table_name %>.was_updated.')) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @<%= orm_instance.errors %>, :status => :unprocessable_entity }
end
end
end
# DELETE <%= route_url %>/1
# DELETE <%= route_url %>/1.xml
def destroy
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
@<%= orm_instance.destroy %>
respond_to do |format|
format.html { redirect_to(<%= index_helper %>_url, :notice => t('<%= table_name %>.was_deleted.')) }
format.xml { head :ok }
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment