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   | 
    
Conversion - Included
| #to_key | Returns an   | 
    
| #to_model | If your object is already designed to implement all of the Active Model you can use the default   | 
    
| #to_param | Returns a   | 
    
| #to_partial_path | Returns a   | 
    
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   | 
    
| #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   | 
    
| #freeze, | |
| #invalid? | Performs the opposite of   | 
    
| #read_attribute_for_validation | Hook method defining how an attribute value should be retrieved.  | 
    
| #valid? | Runs all the specified validations and returns   | 
    
| #validate | Alias for Validations#valid?.  | 
    
| #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   | 
    
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   | 
    
| #_assign_attribute, #_assign_attributes | |