module ActiveModel::Conversion
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"
Public Instance Methods
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 lib/active_model/conversion.rb, line 45 def to_key persisted? ? [id] : nil end
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 lib/active_model/conversion.rb, line 36 def to_model self end
Returns a string representing the object's key suitable for use in
URLs, or nil if persisted?
is false.
# File lib/active_model/conversion.rb, line 51 def to_param persisted? ? to_key.join('-') : nil end
Returns a string identifying the path associated with the object. ActionPack uses this to find a suitable partial to represent the object.
# File lib/active_model/conversion.rb, line 57 def to_partial_path self.class._to_partial_path end