Module: DefaultValueFor::InstanceMethods
- Defined in:
- lib/default_value_for.rb
Instance Method Summary collapse
Instance Method Details
#initialize(attributes = nil, options = {}) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/default_value_for.rb', line 124 def initialize(attributes = nil, = {}) @initialization_attributes = attributes.is_a?(Hash) ? attributes.stringify_keys : {} unless [:without_protection] if respond_to?(:mass_assignment_options, true) && .has_key?(:as) @initialization_attributes = sanitize_for_mass_assignment(@initialization_attributes, [:as]) elsif respond_to?(:sanitize_for_mass_assignment, true) @initialization_attributes = sanitize_for_mass_assignment(@initialization_attributes) else @initialization_attributes = remove_attributes_protected_from_mass_assignment(@initialization_attributes) end end if ActiveRecord::VERSION::MAJOR > 3 || (ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR > 0) super(attributes, ) else super(attributes) end end |
#set_default_values ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/default_value_for.rb', line 144 def set_default_values self.class._all_default_attribute_values.each do |attribute, container| next unless self.new_record? || self.class._all_default_attribute_values_not_allowing_nil.include?(attribute) connection_default_value_defined = new_record? && respond_to?("#{attribute}_changed?") && !__send__("#{attribute}_changed?") next unless connection_default_value_defined || self.attributes[attribute].blank? # allow explicitly setting nil through allow nil option next if @initialization_attributes.is_a?(Hash) && @initialization_attributes.has_key?(attribute) && !self.class._all_default_attribute_values_not_allowing_nil.include?(attribute) __send__("#{attribute}=", container.evaluate(self)) changed_attributes.delete(attribute) end end |