Add "rentable type" to rentables
[cs356-p2-videostore.git] / app / controllers / game_controller.rb
1 class GameController < ApplicationController
2   def index
3     list
4     render :action => 'list'
5   end
6
7   # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
8   verify :method => :post, :only => [ :destroy, :create, :update ],
9          :redirect_to => { :action => :list }
10
11   def list
12     @game_pages, @games = paginate :games, :per_page => 10
13   end
14
15   def show
16     @game = Game.find(params[:id])
17   end
18
19   def new
20     @game = Game.new
21   end
22
23   def create
24     # A new rentable must be created whenever we create a new game
25     @rentable = Rentable.new
26     @rentable.rtype = 'game'
27     @rentable.save
28     @game = Game.new(params[:game])
29     @game.rentable_id = @rentable.id
30     if @game.save
31       flash[:notice] = 'Game was successfully created.'
32       redirect_to :action => 'list'
33     else
34       render :action => 'new'
35     end
36   end
37
38   def edit
39     @game = Game.find(params[:id])
40   end
41
42   def update
43     @game = Game.find(params[:id])
44     if @game.update_attributes(params[:game])
45       flash[:notice] = 'Game was successfully updated.'
46       redirect_to :action => 'show', :id => @game
47     else
48       render :action => 'edit'
49     end
50   end
51
52   def destroy
53     Game.find(params[:id]).destroy
54     redirect_to :action => 'list'
55   end
56 end