Module: ActiveModel::Model
- Extended by:
- ActiveSupport::Concern
- Defined in:
- activemodel/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 ActiveSupport::Concern
append_features, class_methods, extended, included, prepend_features, prepended
Methods included from Access
Methods included from API
Methods included from Conversion
#to_key, #to_model, #to_param, #to_partial_path
Methods included from Validations
#errors, #initialize_dup, #invalid?, #valid?, #validate!, #validates_with