Redid up to end of Chapter 6 under Rails2.2.2 and Gems 1.3.1, with Product.date_available
[depot.git] / app / controllers / products_controller.rb
diff --git a/app/controllers/products_controller.rb b/app/controllers/products_controller.rb
new file mode 100644 (file)
index 0000000..1685ca5
--- /dev/null
@@ -0,0 +1,85 @@
+class ProductsController < ApplicationController
+  # GET /products
+  # GET /products.xml
+  def index
+    @products = Product.find(:all)
+
+    respond_to do |format|
+      format.html # index.html.erb
+      format.xml  { render :xml => @products }
+    end
+  end
+
+  # GET /products/1
+  # GET /products/1.xml
+  def show
+    @product = Product.find(params[:id])
+
+    respond_to do |format|
+      format.html # show.html.erb
+      format.xml  { render :xml => @product }
+    end
+  end
+
+  # GET /products/new
+  # GET /products/new.xml
+  def new
+    @product = Product.new
+
+    respond_to do |format|
+      format.html # new.html.erb
+      format.xml  { render :xml => @product }
+    end
+  end
+
+  # GET /products/1/edit
+  def edit
+    @product = Product.find(params[:id])
+  end
+
+  # POST /products
+  # POST /products.xml
+  def create
+    @product = Product.new(params[:product])
+
+    respond_to do |format|
+      if @product.save
+        flash[:notice] = 'Product was successfully created.'
+        format.html { redirect_to(@product) }
+        format.xml  { render :xml => @product, :status => :created, :location => @product }
+      else
+        format.html { render :action => "new" }
+        format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
+      end
+    end
+  end
+
+  # PUT /products/1
+  # PUT /products/1.xml
+  def update
+    @product = Product.find(params[:id])
+
+    respond_to do |format|
+      if @product.update_attributes(params[:product])
+        flash[:notice] = 'Product was successfully updated.'
+        format.html { redirect_to(@product) }
+        format.xml  { head :ok }
+      else
+        format.html { render :action => "edit" }
+        format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
+      end
+    end
+  end
+
+  # DELETE /products/1
+  # DELETE /products/1.xml
+  def destroy
+    @product = Product.find(params[:id])
+    @product.destroy
+
+    respond_to do |format|
+      format.html { redirect_to(products_url) }
+      format.xml  { head :ok }
+    end
+  end
+end