module ActionField::ActsAsActionField::ClassMethods
Public Instance Methods
action_field(options = {})
click to toggle source
# File lib/actionfield/acts_as_action_field.rb, line 9 def action_field(options = {}) include ActionField::ActionFieldInstanceMethods cattr_accessor :action_fields on = Array(options[:on]) before_create :action_field_execute if on.empty? || on.include?(:create) before_update :action_field_execute if on.empty? || on.include?(:update) options.delete(:on) active_record_fields = self.column_names.collect(&:to_sym) self.action_fields = Hash.new.tap do |h| options.each do |action, fields| fields.each do |field| raise Exceptions::FieldNotFound, "Field :#{field} not found" if active_record_fields.exclude?(field) h[field] ||= [] h[field] << action end end end end