Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ch1ago/1733858 to your computer and use it in GitHub Desktop.
Save ch1ago/1733858 to your computer and use it in GitHub Desktop.
<% module_namespacing do -%>
class <%= controller_class_name %>Controller < ApplicationController
# TODO: name these comments properly with all the matching URLs to each action
# GET <%= route_url %>
def index
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
end
# GET <%= route_url %>/1
def show
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
end
# GET <%= route_url %>/new
def new
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
end
# POST <%= route_url %>
def create
@<%= singular_table_name %> = <%= orm_class.build(class_name, "params[:#{singular_table_name}]") %>
if @<%= orm_instance.save %>
redirect_to @<%= singular_table_name %>, <%= key_value :notice, "'#{human_name} foi criado.'" %>
else
render <%= key_value :action, '"new"' %>
end
end
# GET <%= route_url %>/1/edit
def edit
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
end
# PUT <%= route_url %>/1
def update
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
if @<%= orm_instance.update_attributes("params[:#{singular_table_name}]") %>
redirect_to @<%= singular_table_name %>, <%= key_value :notice, "'#{human_name} foi atualizado.'" %>
else
render <%= key_value :action, '"edit"' %>
end
end
# DELETE <%= route_url %>/1
def destroy
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
@<%= orm_instance.destroy %>
redirect_to <%= index_helper %>_url
end
end
<% end -%>
=begin
# GET <%= route_url %>
# GET <%= route_url %>.json
def index
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
#beyond simple html
respond_to do |format|
format.html { } # index.html.erb
format.js { } # index.js.erb
format.atom { } # index.atom.builder
format.json { render <%= key_value :json, "@#{plural_table_name}" %> }
format.xml { render <%= key_value :xml, "@#{plural_table_name}" %> }
format.yaml { render <%= key_value :text, "@#{plural_table_name}.to_yaml" %> }
end
end
# GET <%= route_url %>/1
# GET <%= route_url %>/1.json
def show
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
#beyond simple html
respond_to do |format|
format.html { } # show.html.erb
format.js { } # show.js.erb
format.atom { } # show.atom.builder
format.json { render <%= key_value :json, "@#{singular_table_name}" %> }
format.xml { render <%= key_value :xml, "@#{singular_table_name}" %> }
format.yaml { render <%= key_value :text, "@#{singular_table_name}.to_yaml" %> }
end
end
# GET <%= route_url %>/new
# GET <%= route_url %>/new.json
def new
@<%= singular_table_name %> = <%= orm_class.build(class_name) %>
#beyond simple html, use show code
end
# GET <%= route_url %>/1/edit
def edit
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
#beyond simple html, use show code
end
# POST <%= route_url %>
# POST <%= route_url %>.json
def create
@<%= singular_table_name %> = <%= orm_class.build(class_name, "params[:#{singular_table_name}]") %>
#beyond simple html
respond_to do |format|
if @<%= orm_instance.save %>
format.html { redirect_to @<%= singular_table_name %>, <%= key_value :notice, "'#{human_name} foi criado.'" %> }
format.js { } # create.js.erb
format.atom { } # create.atom.builder
format.json { render <%= key_value :json, "@#{singular_table_name}" %>, <%= key_value :status, ':created' %>, <%= key_value :location, "@#{singular_table_name}" %> }
format.xml { } #TODO
format.yaml { } #TODO
else
format.html { render <%= key_value :action, '"new"' %> }
format.js { } # create.js.erb
format.atom { } # create.atom.builder
#format.js { render 'create_fail' } # create_fail.js.erb
#format.atom { render 'create_fail' } # create_fail.atom.builder
format.json { render <%= key_value :json, "@#{orm_instance.errors}" %>, <%= key_value :status, ':unprocessable_entity' %> }
format.xml { } #TODO
format.yaml { } #TODO
end
end
end
# PUT <%= route_url %>/1
# PUT <%= route_url %>/1.json
def update
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
#beyond simple html
respond_to do |format|
if @<%= orm_instance.update_attributes("params[:#{singular_table_name}]") %>
format.html { redirect_to @<%= singular_table_name %>, <%= key_value :notice, "'#{human_name} foi atualizado.'" %> }
format.js { } # update.js.erb
format.atom { } # update.atom.builder
format.json { head :no_content }
format.xml { } #TODO
format.yaml { } #TODO
else
format.html { render <%= key_value :action, '"edit"' %> }
format.js { } # update.js.erb
format.atom { } # update.atom.builder
#format.js { render 'update_fail' } # update_fail.js.erb
#format.atom { render 'update_fail' } # update_fail.atom.builder
format.json { render <%= key_value :json, "@#{orm_instance.errors}" %>, <%= key_value :status, ':unprocessable_entity' %> }
format.xml { } #TODO
format.yaml { } #TODO
end
end
end
# DELETE <%= route_url %>/1
# DELETE <%= route_url %>/1.json
def destroy
@<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
@<%= orm_instance.destroy %>
#beyond simple html
respond_to do |format|
format.html { redirect_to <%= index_helper %>_url }
format.js { } # update.js.erb
format.atom { } # update.atom.builder
format.json { head :no_content }
format.xml { } #TODO
format.yaml { } #TODO
end
end
=end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment