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"
Returns an Enumerable of all key
attributes if any is set, regardless if the object is persisted or not. If
there no key attributes, returns nil
.
class Person < ActiveRecord::Base
end
person = Person.create
person.to_key # => [1]
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.
Returns a string
representing the object's key suitable
for use in URLs, or nil
if persisted?
is
false
.
class Person < ActiveRecord::Base
end
person = Person.create
person.to_param # => "1"
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"