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