module FlagActions extend ActiveSupport::Concern def flag Flag.flag(current_user, flaggable) render "shared/_refresh_flag_actions", locals: { flaggable: flaggable } end def unflag Flag.unflag(current_user, flaggable) render "shared/_refresh_flag_actions", locals: { flaggable: flaggable } end private def flaggable if resource_model.to_s == "Budget::Investment" instance_variable_get("@investment") elsif resource_model.to_s == "Legislation::Proposal" instance_variable_get("@proposal") else instance_variable_get("@#{resource_model.to_s.downcase}") end end end