mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-30 14:31:12 +00:00
56 lines
1,008 B
Ruby
56 lines
1,008 B
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 :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 :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
|