module ActiveRecordDefineNils::Model
Public Instance Methods
read_attribute(attr_name)
click to toggle source
Calls superclass method
# File lib/activerecord-define_nils/model.rb, line 45 def read_attribute(attr_name) value = super(attr_name) (@define_nils_no_read_mod ||= false) ? value : (self.nil_definitions && self.nil_definitions[attr_name.to_sym] && self.nil_definitions[attr_name.to_sym].include?(value) ? nil : value) end
Private Instance Methods
_create_record()
click to toggle source
Calls superclass method
# File lib/activerecord-define_nils/model.rb, line 52 def _create_record @define_nils_no_read_mod = true if self.nil_saved_as self.nil_saved_as.each do |column, translated_nil| if respond_to?(column) && respond_to?("#{column}=") && self.__send__(column).nil? write_attribute(column.to_s, translated_nil) end end end super ensure @define_nils_no_read_mod = false end
_update_record(*args, touch: true, **options)
click to toggle source
Calls superclass method
# File lib/activerecord-define_nils/model.rb, line 67 def _update_record(*args, touch: true, **options) @define_nils_no_read_mod = true if touch && self.nil_saved_as self.nil_saved_as.each do |column, translated_nil| if respond_to?(column) && respond_to?("#{column}=") && self.__send__(column).nil? write_attribute(column.to_s, translated_nil) end end end super(*args, touch, **options) ensure @define_nils_no_read_mod = false end