ensl.org/app/controllers/polls_controller.rb

56 lines
1 KiB
Ruby

class PollsController < ApplicationController
before_filter :get_poll, :except => [:index, :new, :create]
def index
@polls = Poll.all
end
def show
end
def new
@poll = Poll.new
@poll.options.build
raise AccessError unless @poll.can_create? cuser
end
def edit
raise AccessError unless @poll.can_update? cuser
end
def create
@poll = Poll.new params[:poll]
@poll.user = cuser
raise AccessError unless @poll.can_create? cuser
if @poll.save
flash[:notice] = t(:polls_create)
redirect_to @poll
else
render :action => "new"
end
end
def update
raise AccessError unless @poll.can_update? cuser
if @poll.update_attributes params[:poll]
flash[:notice] = t(:polls_update)
redirect_to @poll
else
render :action => "edit"
end
end
def destroy
raise AccessError unless @poll.can_destroy? cuser
@poll.destroy
redirect_to polls_url
end
private
def get_poll
@poll = Poll.find params[:id]
end
end