# frozen_string_literal: true class Posts::InteractionsController < ApplicationController before_action :load_post before_action :filter_banned_users before_action :require_user def create authorize! :vote, @post engine = Booru::VotingEngine.new(current_user, @post) case params[:a] when 'u' engine.toggle_vote!(:up) when 'd' engine.toggle_vote!(:down) when 'f' engine.toggle_fave! when 'h' engine.toggle_hide! else raise end redirect_back(fallback_location: short_post_path(@post)) end private def load_post @post = Post.includes(:votes).find(params[:post_id]) end end