instance method method_missing

Ruby on Rails 3.0.20

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

method_missing(method_id, *args, &block)

Allows access to the object attributes, which are held in the @attributes hash, as though they were first-class methods. So a Person class with a name attribute can use Person#name and Person#name= and never directly use the attributes hash – except for multiple assigns with ActiveRecord#attributes=. A Milestone class can also ask Milestone#completed? to test that the completed attribute is not nil or 0.

It’s also possible to instantiate related objects, so a Client class belonging to the clients table with a master_id foreign key can instantiate master through Client#master.

Parameters

method_id req
args rest
block block
Source
# File activemodel/lib/active_model/attribute_methods.rb, line 386
    def method_missing(method_id, *args, &block)
      method_name = method_id.to_s
      if match = match_attribute_method?(method_name)
        guard_private_attribute_method!(method_name, args)
        return __send__(match.target, match.attr_name, *args, &block)
      end
      super
    end

Defined in activemodel/lib/active_model/attribute_methods.rb line 386 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveModel::AttributeMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close