Skip to Content Skip to Search
Ruby on Rails 8.0.2.1

Module ActiveModel::Conversion

v8.0.2.1

Active Model Conversion

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 == cm # => true
cm.to_key # => nil
cm.to_param # => nil
cm.to_partial_path # => "contact_messages/contact_message"
Methods
P
T

Class Public methods

param_delimiter Link

Accepts a string that will be used as a delimiter of object’s key values in the ‘to_param` method.

Source: | on GitHub

# File activemodel/lib/active_model/conversion.rb, line 32
class_attribute :param_delimiter, instance_reader: false, default: "-"

Instance Public methods

to_key() Link

Returns an Array of all key attributes if any of the attributes is set, whether or not the object is persisted. Returns nil if there are no key attributes.

class Person
 include ActiveModel::Conversion
 attr_accessor :id
 def initialize(id)
 @id = id
 end
end
person = Person.new(1)
person.to_key # => [1]

Source: | on GitHub

# File activemodel/lib/active_model/conversion.rb, line 67
def to_key
 key = respond_to?(:id) && id
 key ? Array(key) : nil
end

to_model() Link

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.

class Person
 include ActiveModel::Conversion
end
person = Person.new
person.to_model == person # => true

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.

Source: | on GitHub

# File activemodel/lib/active_model/conversion.rb, line 49
def to_model
 self
end

to_param() Link

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

class Person
 include ActiveModel::Conversion
 attr_accessor :id
 def initialize(id)
 @id = id
 end
 def persisted?
 true
 end
end
person = Person.new(1)
person.to_param # => "1"

Source: | on GitHub

# File activemodel/lib/active_model/conversion.rb, line 90
def to_param
 (persisted? && (key = to_key) && key.all?) ? key.join(self.class.param_delimiter) : nil
end

to_partial_path() Link

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

class Person
 include ActiveModel::Conversion
end
person = Person.new
person.to_partial_path # => "people/person"

Source: | on GitHub

# File activemodel/lib/active_model/conversion.rb, line 103
def to_partial_path
 self.class._to_partial_path
end

AltStyle によって変換されたページ (->オリジナル) /