Active Model Conversions

Handles default conversions: to_model, to_key, to_param, and to_partial_path.

Let’s take for example this non-persisted object.

  class ContactMessage
    include ActiveModel::Conversion

    # ContactMessage are never persisted in the DB
    def persisted?
      false
    end
  end

  cm = ContactMessage.new
  cm.to_model == self # => true
  cm.to_key           # => nil
  cm.to_param         # => nil
  cm.to_path          # => "contact_messages/contact_message"
Methods
T
Classes and Modules
Instance Public methods
to_key()

Returns an Enumerable of all key attributes if any is set, regardless if the object is persisted or not.

Note the default implementation uses persisted? just because all objects in Ruby 1.8.x responds to :id.

    # File activemodel/lib/active_model/conversion.rb, line 45
45:     def to_key
46:       persisted? ? [id] : nil
47:     end
to_model()

If your object is already designed to implement all of the Active Model you can use the default :to_model implementation, which simply returns self.

If your model does not act like an Active Model object, then you should define :to_model yourself returning a proxy object that wraps your object with Active Model compliant methods.

    # File activemodel/lib/active_model/conversion.rb, line 36
36:     def to_model
37:       self
38:     end
to_param()

Returns a string representing the object’s key suitable for use in URLs, or nil if persisted? is false.

    # File activemodel/lib/active_model/conversion.rb, line 51
51:     def to_param
52:       persisted? ? to_key.join('-') : nil
53:     end
to_partial_path()

Returns a string identifying the path associated with the object. ActionPack uses this to find a suitable partial to represent the object.

    # File activemodel/lib/active_model/conversion.rb, line 57
57:     def to_partial_path
58:       self.class._to_partial_path
59:     end