Finished chapter 11
[depot.git] / app / controllers / users_controller.rb
1 class UsersController < ApplicationController
2 # GET /users
3 # GET /users.xml
4 def index
5 @users = User.find(:all, :order => :name)
6
7 respond_to do |format|
8 format.html # index.html.erb
9 format.xml { render :xml => @users }
10 end
11 end
12
13 # GET /users/1
14 # GET /users/1.xml
15 def show
16 @user = User.find(params[:id])
17
18 respond_to do |format|
19 format.html # show.html.erb
20 format.xml { render :xml => @user }
21 end
22 end
23
24 # GET /users/new
25 # GET /users/new.xml
26 def new
27 @user = User.new
28
29 respond_to do |format|
30 format.html # new.html.erb
31 format.xml { render :xml => @user }
32 end
33 end
34
35 # GET /users/1/edit
36 def edit
37 @user = User.find(params[:id])
38 end
39
40 # POST /users
41 # POST /users.xml
42 def create
43 @user = User.new(params[:user])
44
45 respond_to do |format|
46 if @user.save
47 flash[:notice] = "User #{@user.name} was successfully created."
48 format.html { redirect_to(:action => 'index') }
49 format.xml { render :xml => @user, :status => :created, :location => @user }
50 else
51 format.html { render :action => "new" }
52 format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
53 end
54 end
55 end
56
57 # PUT /users/1
58 # PUT /users/1.xml
59 def update
60 @user = User.find(params[:id])
61
62 respond_to do |format|
63 if @user.update_attributes(params[:user])
64 flash[:notice] = "User #{@user.name} was successfully updated."
65 format.html { redirect_to(:action => 'index') }
66 format.xml { head :ok }
67 else
68 format.html { render :action => "edit" }
69 format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
70 end
71 end
72 end
73
74 # DELETE /users/1
75 # DELETE /users/1.xml
76 def destroy
77 @user = User.find(params[:id])
78 begin
79 flash[:notice] = "User #{@user.name} deleted"
80 @user.destroy
81 rescue Exception => e
82 flash[:notice] = e.message
83 end
84
85 respond_to do |format|
86 format.html { redirect_to(users_url) }
87 format.xml { head :ok }
88 end
89 end
90 end