Module: ActiveModel::Conversion
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActiveRecord::Base, ActiveResource::Base
- Defined in:
- activemodel/lib/active_model/conversion.rb
Overview
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"
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#to_key ⇒ Object
Returns an Enumerable of all key attributes if any is set, regardless if the object is persisted or not.
-
#to_model ⇒ Object
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. -
#to_param ⇒ Object
Returns a string representing the object’s key suitable for use in URLs, or nil if
persisted?
is false. -
#to_partial_path ⇒ Object
Returns a string identifying the path associated with the object.
Methods included from ActiveSupport::Concern
append_features, extended, included
Instance Method Details
#to_key ⇒ Object
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
.
45 46 47 |
# File 'activemodel/lib/active_model/conversion.rb', line 45 def to_key persisted? ? [id] : nil end |
#to_model ⇒ Object
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.
36 37 38 |
# File 'activemodel/lib/active_model/conversion.rb', line 36 def to_model self end |
#to_param ⇒ Object
Returns a string representing the object’s key suitable for use in URLs, or nil if persisted?
is false.
51 52 53 |
# File 'activemodel/lib/active_model/conversion.rb', line 51 def to_param persisted? ? to_key.join('-') : nil end |
#to_partial_path ⇒ Object
Returns a string identifying the path associated with the object. ActionPack uses this to find a suitable partial to represent the object.
57 58 59 |
# File 'activemodel/lib/active_model/conversion.rb', line 57 def to_partial_path self.class._to_partial_path end |