class FollowsController < ApplicationController before_action :authenticate_user! load_and_authorize_resource def create @follow.save! flash.now[:notice] = t("shared.followable.#{followable_translation_key(@follow)}.create.notice") render :refresh_follow_button end def destroy @follow.destroy! flash.now[:notice] = t("shared.followable.#{followable_translation_key(@follow)}.destroy.notice") render :refresh_follow_button end private def follow_params params.permit(allowed_params) end def allowed_params [:followable_type, :followable_id] end def followable_translation_key(follow) follow.followable.class.name.parameterize(separator: "_") end end