From 6df5cb6ef75220e75b320f2ccd444ae9e88b2578 Mon Sep 17 00:00:00 2001 From: Simon Jefford Date: Thu, 13 Aug 2009 10:46:37 +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 | 48 +++++-------------- 3 files changed, 21 insertions(+), 35 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..a0513fb 100644 --- a/railties/lib/generators/rails/scaffold_controller/templates/controller.rb +++ b/railties/lib/generators/rails/scaffold_controller/templates/controller.rb @@ -1,14 +1,13 @@ 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 %>) end <% end -%> @@ -16,61 +15,40 @@ class <%= controller_class_name %>Controller < ApplicationController # 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 %>) 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 %>) end # GET /<%= table_name %>/1/edit def edit @<%= file_name %> = <%= orm_class.find(class_name, "params[:id]") %> + respond_with(@<%= file_name %>) 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 + if @<%= orm_instance.save %> + flash[:notice] = '<%= class_name %> was successfully created.' end + respond_with(@<%= 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 + if @<%= orm_instance.update_attributes("params[:#{file_name}]") %> + flash[:notice] = '<%= class_name %> was successfully updated.' end + respond_with(@<%= file_name %>) end # DELETE /<%= table_name %>/1 -- 1.6.0.4