Active Model Attributes
The Attributes module allows models to define attributes beyond simple Ruby readers and writers. Similar to Active Record attributes, which are typically inferred from the database schema, Active Model Attributes are aware of data types, can have default values, and can handle casting and serialization.
To use Attributes, include the module in your model class and define your attributes using the attribute macro. It accepts a name, a type, a default value, and any other options supported by the attribute type.
Examples
class Person
  include ActiveModel::Attributes
  attribute :name, :string
  attribute :active, :boolean, default: true
end
person = Person.new
person.name = "Volmer"
person.name # => "Volmer"
person.active # => true
Namespace
    
  
  
    
    Methods
    
  
  
    
    Included Modules
    
  
  
    
    
    
    
    
    
    
      Instance Public methods
attribute_names() Link
Returns an array of attribute names as strings.
class Person
  include ActiveModel::Attributes
  attribute :name, :string
  attribute :age, :integer
end
person = Person.new
person.attribute_names # => ["name", "age"]
attributes() Link
Returns a hash of all the attributes with their names as keys and the values of the attributes as values.
class Person
  include ActiveModel::Attributes
  attribute :name, :string
  attribute :age, :integer
end
person = Person.new
person.name = "Francesco"
person.age = 22
person.attributes # => { "name" => "Francesco", "age" => 22}