module Activatable::InstanceMethods
Public Instance Methods
activate(success_block = nil)
click to toggle source
# File lib/rails_core_extensions/activatable.rb, line 17 def activate(success_block = nil) resource.active = params[:active].presence || false action = resource.active ? 'activate' : 'inactivate' resource.save! success_block ||= -> { flash[:success] = "#{resource} #{action}d" redirect_to(collection_path) } success_block.call rescue ActiveRecord::ActiveRecordError => e resource.errors.add(:base, "Failed to #{action}: " + e.message) flash[:error] = resource.errors.full_messages.to_sentence redirect_to(collection_path) end