123456789_123456789_123456789_123456789_123456789_

Module: ActiveModel::Model

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
ActionText::Attachables::ContentAttachment, ::ActionText::AttachmentGallery
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Defined in: activemodel/lib/active_model/model.rb

Overview

Active Model Basic Model

Allows implementing models similar to ::ActiveRecord::Base. Includes API for the required interface for an object to interact with Action Pack and Action View, but can be extended with other functionalities.

A minimal implementation could be:

class Person
  include ActiveModel::Model
  attr_accessor :name, :age
end

person = Person.new(name: 'bob', age: '18')
person.name # => "bob"
person.age  # => "18"

If for some reason you need to run code on initialize, make sure you call super if you want the attributes hash initialization to happen.

class Person
  include ActiveModel::Model
  attr_accessor :id, :name, :omg

  def initialize(attributes={})
    super
    @omg ||= true
  end
end

person = Person.new(id: 1, name: 'bob')
person.omg # => true

For more detailed information on other functionalities available, please refer to the specific modules included in Model (see below).

Class Method Summary

Naming - self

param_key

Returns string to use for params names.

plural

Returns the plural class name of a record or class.

route_key

Returns string to use while generating route names.

singular

Returns the singular class name of a record or class.

singular_route_key

Returns string to use while generating route names.

uncountable?

Identifies whether the class name of a record or class is uncountable.

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Attribute Summary

API - Included

#_validators, #_validators?,
#persisted?

Indicates if the model is persisted.

Validations - Included

#validation_context

Returns the context when running validations.

AttributeAssignment - Included

Instance Method Summary

API - Included

#initialize

Initializes a new model with the given params.

Conversion - Included

#to_key

Returns an ::Array of all key attributes if any of the attributes is set, whether or not the object is persisted.

#to_model

If your object is already designed to implement all of the Active Model you can use the default :to_model implementation, which simply returns self.

#to_param

Returns a string representing the object’s key suitable for use in URLs, or nil if persisted? is false.

#to_partial_path

Returns a string identifying the path associated with the object.

Validations - Included

#errors

Returns the Errors object that holds all information about attribute error messages.

#freeze,
#invalid?

Performs the opposite of valid?.

#read_attribute_for_validation

Hook method defining how an attribute value should be retrieved.

#valid?

Runs all the specified validations and returns true if no errors were added otherwise false.

#validate
#validate!

Runs all the validations within the specified context.

#validates_with

Passes the record off to the class or classes specified and allows them to add errors based on more complex conditions.

#raise_validation_error

AttributeAssignment - Included

#assign_attributes

Allows you to set all the attributes by passing in a hash of attributes with keys matching the attribute names.

#attribute_writer_missing

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