Module: ActiveModel::Model

Extended by:
ActiveSupport::Concern
Includes:
API, Access
Defined in:
lib/active_model/model.rb

Overview

Active Model Basic Model

Allows implementing models similar to ActiveRecord::Base. Includes ActiveModel::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 ActiveModel::Model (see below).

Method Summary

Methods included from Access

#slice, #values_at

Methods included from API

#initialize, #persisted?

Methods included from Conversion

#to_key, #to_model, #to_param, #to_partial_path

Methods included from Validations

#errors, #freeze, #initialize_dup, #invalid?, #valid?, #validate!, #validates_with, #validation_context

Methods included from AttributeAssignment

#assign_attributes, #attribute_writer_missing