9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 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
|