Skip to content

Instantly share code, notes, and snippets.

@Solnse
Created October 18, 2011 04:43
Show Gist options
  • Save Solnse/1294622 to your computer and use it in GitHub Desktop.
Save Solnse/1294622 to your computer and use it in GitHub Desktop.
index.html.haml
%h1 Listing orders
%table
%tr
%th Name
%th Address
%th Email
%th Pay type
%th
%th
%th
- @orders.each do |order|
%tr
%td= order.name
%td= order.address
%td= order.email
%td= order.pay_type
%td= link_to 'Show', order
%td= link_to 'Edit', edit_order_path(order)
%td= link_to 'Destroy', order, :confirm => 'Are you sure?', :method => :delete
%br
= link_to 'New Order', new_order_path
= will_paginate @orders
orders_controller.rb
class OrdersController < ApplicationController
# GET /orders
# GET /orders.json
def index
@orders = Order.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @orders }
end
end
# GET /orders/1
# GET /orders/1.json
def show
@order = Order.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @order }
end
end
# GET /orders/new
# GET /orders/new.json
def new
@cart = current_cart
if @cart.line_items.empty?
redirect_to store_url, notice: "Your cart is empty"
return
end
@order = Order.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @order }
end
end
# GET /orders/1/edit
def edit
@order = Order.find(params[:id])
end
# POST /orders
# POST /orders.json
def create
@order = Order.new(params[:order])
@order.add_line_items_from_cart(current_cart)
respond_to do |format|
if @order.save
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
format.html { redirect_to store_url, notice: 'Thank you for your order.' }
format.json { render json: @order, status: :created, location: @order }
else
@cart = current_cart
format.html { render action: "new" }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end
# PUT /orders/1
# PUT /orders/1.json
def update
@order = Order.find(params[:id])
respond_to do |format|
if @order.update_attributes(params[:order])
format.html { redirect_to @order, notice: 'Order was successfully updated.' }
format.json { head :ok }
else
format.html { render action: "edit" }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end
# DELETE /orders/1
# DELETE /orders/1.json
def destroy
@order = Order.find(params[:id])
@order.destroy
respond_to do |format|
format.html { redirect_to orders_url }
format.json { head :ok }
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment