Finished chapter 11
[depot.git] / app / controllers / store_controller.rb
index 68939e6b09f31a82539e7ae7335eb80ce4466919..4c13d34155c6624dbf1efbd0f0c465de7860986e 100644 (file)
@@ -1,12 +1,14 @@
 class StoreController < ApplicationController
+  before_filter :find_cart, :except => :empty_cart
+
   def index
     @products = Product.find_products_for_sale
-    @cart = find_cart
+#    @cart = find_cart
   end
 
   def add_to_cart
     product = Product.find(params[:id])
-    @cart = find_cart
+#    @cart = find_cart
     @current_item = @cart.add_product(product)
       respond_to do |format|
         format.js if request.xhr?
@@ -23,7 +25,7 @@ class StoreController < ApplicationController
   end
 
   def checkout
-    @cart = find_cart
+#    @cart = find_cart
     if @cart.items.empty?
       redirect_to_index("Your cart is empty" )
     else
@@ -37,7 +39,7 @@ class StoreController < ApplicationController
   end
 
   def save_order
-    @cart = find_cart
+#    @cart = find_cart
     @order = Order.new(params[:order])
     # @order.add_line_items_from_cart(@cart)
     @cart.items.each do |item|
@@ -57,10 +59,16 @@ class StoreController < ApplicationController
   end
   
 
+protected
+
+  # No authorization needed for the store
+  def authorize
+  end
+
  private
  
   def find_cart
-    session[:cart] ||= Cart.new
+    @cart = (session[:cart] ||= Cart.new)
   end
 
   def redirect_to_index(msg = nil)