class Ajax::ReportController < ApplicationController rescue_from(ActionController::ParameterMissing) do |param_miss_ex| @status = :parameter_error @message = I18n.t('messages.parameter_error', parameter: param_miss_ex.param.capitalize) @success = false render partial: "ajax/shared/status" end def create params.require :id params.require :type @status = :err @success = false if current_user.nil? @message = I18n.t('messages.report.create.login') return end unless %w(answer comment question user).include? params[:type] @message = I18n.t('messages.report.create.unknown') return end obj = params[:type].strip.capitalize object = case obj when 'User' User.find_by_screen_name params[:id] when 'Question' Question when 'Answer' Answer when 'Comment' Comment else Answer end if object.nil? @message = I18n.t('messages.report.create.not_found', parameter: params[:type]) return end if obj == 'User' current_user.report object, params[:reason] else current_user.report object.find(params[:id]), params[:reason] end @status = :okay @message = I18n.t('messages.report.create.okay', parameter: params[:type]) @success = true end end