module Enum::Transition
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/enum/transition.rb, line 5 def self.included(base) base.class_eval do after_validation :ensure! base.extend ClassMethods end end
Public Instance Methods
ensure!()
click to toggle source
# File lib/enum/transition.rb, line 26 def ensure! self.class.name.constantize.instance_variable_get('@enum_columns_array').each do |column| if !self.new_record? && self.send("#{column}_changed?") unless self.respond_to? "#{self.send("#{column}_was")}_to_#{self.send("#{column}")}" self.errors.add(:base, "Status can't be changed from #{self.send("#{column}_was")} to #{self.send("#{column}")}") end end end end