123456789_123456789_123456789_123456789_123456789_

Module: ActiveModel::Model

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
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

Callbacks - self

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.

extended, model_name_from_record_or_class

::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.

append_features, prepend_features

Instance Attribute Summary

API - Included

#_validators, #_validators?,
#persisted?

Indicates if the model is persisted.

Validations - Included

#validation_context

Returns the context when running validations.

#validation_context=

AttributeAssignment - Included

Instance Method Summary

Access - Included

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::HelperMethods - Included

#validates_absence_of

Validates that the specified attributes are blank (as defined by Object#present?).

#validates_acceptance_of

Encapsulates the pattern of wanting to validate the acceptance of a terms of service check box (or similar agreement).

#validates_comparison_of

Validates the value of a specified attribute fulfills all defined comparisons with another value, proc, or attribute.

#validates_confirmation_of

Encapsulates the pattern of wanting to validate a password or email address field with a confirmation.

#validates_exclusion_of

Validates that the value of the specified attribute is not in a particular enumerable object.

#validates_format_of

Validates whether the value of the specified attribute is of the correct form, going by the regular expression provided.

#validates_inclusion_of

Validates whether the value of the specified attribute is available in a particular enumerable object.

#validates_length_of

Validates that the specified attributes match the length restrictions supplied.

#validates_numericality_of

Validates whether the value of the specified attribute is numeric by trying to convert it to a float with Kernel.Float (if only_integer is false) or applying it to the regular expression /\A[+\-]?\d+\z/ (if only_integer is set to true).

#validates_presence_of

Validates that the specified attributes are not blank (as defined by Object#blank?).

#validates_size_of
#_merge_attributes

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.

#context_for_validation, #init_internals, #raise_validation_error, #run_validations!,
#initialize_dup

Clean the Errors object if instance is duped.

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.

#_assign_attribute, #_assign_attributes

ForbiddenAttributesProtection - Included