Method: ActiveModel::AttributeAssignment#attribute_writer_missing

Defined in:
lib/active_model/attribute_assignment.rb

#attribute_writer_missing(name, value) ⇒ Object

Like ‘BasicObject#method_missing`, #attribute_writer_missing is invoked when #assign_attributes is passed an unknown attribute name.

By default, #attribute_writer_missing raises an UnknownAttributeError.

class Rectangle
  include ActiveModel::AttributeAssignment

  attr_accessor :length, :width

  def attribute_writer_missing(name, value)
    Rails.logger.warn "Tried to assign to unknown attribute #{name}"
  end
end

rectangle = Rectangle.new
rectangle.assign_attributes(height: 10) # => Logs "Tried to assign to unknown attribute 'height'"


56
57
58
# File 'lib/active_model/attribute_assignment.rb', line 56

def attribute_writer_missing(name, value)
  raise UnknownAttributeError.new(self, name)
end