~acesuares/qspell/trunk

« back to all changes in this revision

Viewing changes to vendor/plugins/vote_fu/examples/voteables_controller.rb

  • Committer: Ace Suares
  • Date: 2009-10-07 06:16:20 UTC
  • Revision ID: ace@suares.an-20091007061620-j39st30s42edy61t
 * voting with vote_fu

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This example controller assumes you are using the User class from restful_authentication
 
2
# and a nested voteable resource. See routes.rb
 
3
 
 
4
 
 
5
class VoteablesController < ApplicationController
 
6
 
 
7
  before_filter :find_user
 
8
  before_filter :login_required, :only => [:new, :edit, :destroy, :create, :update]
 
9
  before_filter :must_own_voteable, :only => [:edit, :destroy, :update]
 
10
 
 
11
  # GET /users/:id/voteables
 
12
  # GET /users/:id/voteables.xml
 
13
  def index
 
14
    @voteable = Voteable.descending
 
15
 
 
16
    respond_to do |format|
 
17
      format.html # index.html.erb
 
18
      format.xml  { render :xml => @voteables }
 
19
    end
 
20
  end
 
21
 
 
22
  # GET /users/:id/voteables/1
 
23
  # GET /users/:id/voteables/1.xml
 
24
  def show
 
25
    @voteable = Voteable.find(params[:id])
 
26
 
 
27
    respond_to do |format|
 
28
      format.html # show.html.erb
 
29
      format.xml  { render :xml => @voteable }
 
30
    end
 
31
  end
 
32
 
 
33
  # GET /users/:id/voteables/new
 
34
  # GET /users/:id/voteables/new.xml
 
35
  def new
 
36
    @voteable = Voteable.new
 
37
 
 
38
    respond_to do |format|
 
39
      format.html # new.html.erb
 
40
      format.xml  { render :xml => @voteable }
 
41
    end
 
42
  end
 
43
 
 
44
  # GET /users/:id/voteables/1/edit
 
45
  def edit 
 
46
    @voteable ||= Voteable.find(params[:id])
 
47
  end
 
48
 
 
49
  # POST /users/:id/voteables
 
50
  # POST /users/:id/voteables.xml
 
51
  def create
 
52
    @voteable = Voteable.new(params[:voteable])
 
53
    @voteable.user = current_user
 
54
    
 
55
    respond_to do |format|
 
56
      if @voteable.save
 
57
        flash[:notice] = 'Voteable was successfully saved.'
 
58
        format.html { redirect_to([@user, @voteable]) }
 
59
        format.xml  { render :xml => @voteable, :status => :created, :location => @voteable }
 
60
      else
 
61
        format.html { render :action => "new" }
 
62
        format.xml  { render :xml => @voteable.errors, :status => :unprocessable_entity }
 
63
      end
 
64
    end
 
65
  end
 
66
 
 
67
  # PUT /users/:id/voteable/1
 
68
  # PUT /users/:id/voteable/1.xml
 
69
  def update
 
70
    @voteable = Voteable.find(params[:id])
 
71
    
 
72
    respond_to do |format|
 
73
      if @quote.update_attributes(params[:voteable])
 
74
        flash[:notice] = 'Voteable was successfully updated.'
 
75
        format.html { redirect_to([@user, @voteable]) }
 
76
        format.xml  { head :ok }
 
77
      else
 
78
        format.html { render :action => "edit" }
 
79
        format.xml  { render :xml => @voteable.errors, :status => :unprocessable_entity }
 
80
      end
 
81
    end
 
82
  end
 
83
 
 
84
  # DELETE /users/:id/voteable/1
 
85
  # DELETE /users/:id/voteable/1.xml
 
86
  def destroy
 
87
    @voteable = Voteable.find(params[:id])
 
88
    @voteable.destroy
 
89
 
 
90
    respond_to do |format|
 
91
      format.html { redirect_to(user_voteables_url) }
 
92
      format.xml  { head :ok }
 
93
    end
 
94
  end
 
95
  
 
96
  private
 
97
  def find_user 
 
98
    @user = User.find(params[:user_id])
 
99
  end
 
100
    
 
101
  def must_own_voteable
 
102
    @voteable ||= Voteable.find(params[:id])
 
103
    @voteable.user == current_user || ownership_violation
 
104
  end
 
105
  
 
106
  def ownership_violation
 
107
    respond_to do |format|
 
108
      flash[:notice] = 'You cannot edit or delete voteable that you do not own!'
 
109
      format.html do
 
110
        redirect_to user_path(current_user)
 
111
      end
 
112
    end
 
113
  end
 
114
  
 
115
  
 
116
  
 
117
end