From 589a1ae6f85a98c52ff95eee511e5b1cddd9f6e8 Mon Sep 17 00:00:00 2001 From: Simon Jefford Date: Wed, 12 Aug 2009 20:34:01 +0100 Subject: [PATCH] Changed controller scaffold to use respond_with --- railties/lib/generators/active_model.rb | 4 ++ railties/lib/generators/active_record.rb | 4 ++ .../scaffold_controller/templates/controller.rb | 52 ++++---------------- 3 files changed, 18 insertions(+), 42 deletions(-) diff --git a/railties/lib/generators/active_model.rb b/railties/lib/generators/active_model.rb index 1a849a0..2625aaa 100644 --- a/railties/lib/generators/active_model.rb +++ b/railties/lib/generators/active_model.rb @@ -43,6 +43,10 @@ module Rails raise NotImplementedError end + def self.create(klass, params=nil) + raise NotImplementedError + end + # GET new # POST create def self.build(klass, params=nil) diff --git a/railties/lib/generators/active_record.rb b/railties/lib/generators/active_record.rb index 924b708..d44c73e 100644 --- a/railties/lib/generators/active_record.rb +++ b/railties/lib/generators/active_record.rb @@ -37,6 +37,10 @@ module ActiveRecord end end + def self.create(klass, params=nil) + "#{klass}.create(#{params})" + end + def save "#{name}.save" end diff --git a/railties/lib/generators/rails/scaffold_controller/templates/controller.rb b/railties/lib/generators/rails/scaffold_controller/templates/controller.rb index 3cc8bbf..f6f049f 100644 --- a/railties/lib/generators/rails/scaffold_controller/templates/controller.rb +++ b/railties/lib/generators/rails/scaffold_controller/templates/controller.rb @@ -1,76 +1,44 @@ class <%= controller_class_name %>Controller < ApplicationController + + respond_to :html, :xml + <% unless options[:singleton] -%> # GET /<%= table_name %> # GET /<%= table_name %>.xml def index - @<%= table_name %> = <%= orm_class.all(class_name) %> - - respond_to do |format| - format.html # index.html.erb - format.xml { render :xml => @<%= table_name %> } - end + respond_with(@<%= table_name %> = <%= orm_class.all(class_name) %>) end <% end -%> # GET /<%= table_name %>/1 # GET /<%= table_name %>/1.xml def show - @<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %> - - respond_to do |format| - format.html # show.html.erb - format.xml { render :xml => @<%= file_name %> } - end + respond_with(@<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %>) end # GET /<%= table_name %>/new # GET /<%= table_name %>/new.xml def new - @<%= file_name %> = <%= orm_class.build(class_name) %> - - respond_to do |format| - format.html # new.html.erb - format.xml { render :xml => @<%= file_name %> } - end + respond_with(@<%= file_name %> = <%= orm_class.build(class_name) %>) end # GET /<%= table_name %>/1/edit def edit - @<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %> + respond_with(@<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %>) end # POST /<%= table_name %> # POST /<%= table_name %>.xml def create - @<%= file_name %> = <%= orm_class.build(class_name, "params[:#{file_name}]") %> - - respond_to do |format| - if @<%= orm_instance.save %> - flash[:notice] = '<%= class_name %> was successfully created.' - format.html { redirect_to(@<%= file_name %>) } - format.xml { render :xml => @<%= file_name %>, :status => :created, :location => @<%= file_name %> } - else - format.html { render :action => "new" } - format.xml { render :xml => @<%= orm_instance.errors %>, :status => :unprocessable_entity } - end - end + respond_with(@<%= file_name %> = <%= orm_class.create(class_name, "params[:#{file_name}]") %>) end # PUT /<%= table_name %>/1 # PUT /<%= table_name %>/1.xml def update @<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %> - - respond_to do |format| - if @<%= orm_instance.update_attributes("params[:#{file_name}]") %> - flash[:notice] = '<%= class_name %> was successfully updated.' - format.html { redirect_to(@<%= file_name %>) } - format.xml { head :ok } - else - format.html { render :action => "edit" } - format.xml { render :xml => @<%= orm_instance.errors %>, :status => :unprocessable_entity } - end - end + @<%= orm_instance.update_attributes("params[:#{file_name}]") %> + respond_with(@<%= file_name %>) end # DELETE /<%= table_name %>/1 -- 1.6.4