ri > ActiveModel::Serialization

= ActiveModel::Serialization

(from /home/chedong/.local/share/rdoc)
------------------------------------------------------------------------
== Active Model Serialization

Provides a basic serialization to a serializable_hash for your objects.

A minimal implementation could be:

  class Person
    include ActiveModel::Serialization

    attr_accessor :name

    def attributes
      {'name' => nil}
    end
  end

Which would provide you with:

  person = Person.new
  person.serializable_hash   # => {"name"=>nil}
  person.name = "Bob"
  person.serializable_hash   # => {"name"=>"Bob"}

An attributes hash must be defined and should contain any attributes you
need to be serialized. Attributes must be strings, not symbols. When
called, serializable hash will use instance methods that match the name
of the attributes hash's keys. In order to override this behavior, take
a look at the private method read_attribute_for_serialization.

ActiveModel::Serializers::JSON module automatically includes the
ActiveModel::Serialization module, so there is no need to explicitly
include ActiveModel::Serialization.

A minimal implementation including JSON would be:

  class Person
    include ActiveModel::Serializers::JSON

    attr_accessor :name

    def attributes
      {'name' => nil}
    end
  end

Which would provide you with:

  person = Person.new
  person.serializable_hash   # => {"name"=>nil}
  person.as_json             # => {"name"=>nil}
  person.to_json             # => "{\"name\":null}"

  person.name = "Bob"
  person.serializable_hash   # => {"name"=>"Bob"}
  person.as_json             # => {"name"=>"Bob"}
  person.to_json             # => "{\"name\":\"Bob\"}"

Valid options are :only, :except, :methods and :include. The following
are all valid examples:

  person.serializable_hash(only: 'name')
  person.serializable_hash(include: :address)
  person.serializable_hash(include: { address: { only: 'city' }})
------------------------------------------------------------------------
= Instance methods:

  serializable_hash

Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-27 16:33 @216.73.216.194
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!