Module: LaserLemon::Nullify::ClassMethods

Defined in:
lib/nullify.rb

Instance Method Summary collapse

Instance Method Details

#nullify(*columns) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/nullify.rb', line 8

def nullify(*columns)
  write_inheritable_array :nullified_columns, columns.map(&:to_sym)
  class_inheritable_reader :nullified_columns

  columns.each do |column|
    define_method "#{column}=" do |value|
      write_attribute(column, value.blank? ? nil : value)
    end
  end

  include InstanceMethods

  before_validation :nullify_columns
  before_save :nullify_columns
end