39 lines
806 B
Ruby
39 lines
806 B
Ruby
class VotesController < ApplicationController
|
|
before_action :set_debate
|
|
before_action :set_resource
|
|
before_action :authenticate_user!
|
|
respond_to :html, :js
|
|
|
|
def create
|
|
register_vote
|
|
respond_with @debate
|
|
end
|
|
|
|
private
|
|
|
|
def set_resource
|
|
@resource = resource_model.find(params["#{resource_name + "_id"}"])
|
|
end
|
|
|
|
def resource_name
|
|
@resource_name ||= params[:votable_type]
|
|
end
|
|
|
|
def resource_model
|
|
resource_name.capitalize.constantize
|
|
end
|
|
|
|
def set_debate
|
|
@debate = Debate.find(params[:debate_id])
|
|
end
|
|
|
|
def register_vote
|
|
@resource.vote_by voter: current_user, vote: params[:value]
|
|
end
|
|
|
|
def notice
|
|
@resource.vote_registered? ? I18n.t("votes.notice_thanks") : I18n.t("votes.notice_already_registered")
|
|
end
|
|
|
|
end
|