Module: ActiveModel::Conversion
- Defined in:
- activemodel/lib/active_model/conversion.rb
Overview
Active Model Conversions
Handles default conversions: to_model, to_key and to_param.
Example
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
Instance Method Summary (collapse)
-
- (Object) to_key
Returns an Enumerable of all key attributes if any is set, regardless if the object is persisted or not.
-
- (Object) 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.
-
- (Object) to_param
Returns a string representing the object’s key suitable for use in URLs, or nil if persisted? is false.
Instance Method Details
- (Object) 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.
41 42 43 |
# File 'activemodel/lib/active_model/conversion.rb', line 41 def to_key persisted? ? [id] : nil end |
- (Object) 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.
32 33 34 |
# File 'activemodel/lib/active_model/conversion.rb', line 32 def to_model self end |
- (Object) to_param
Returns a string representing the object’s key suitable for use in URLs, or nil if persisted? is false
47 48 49 |
# File 'activemodel/lib/active_model/conversion.rb', line 47 def to_param persisted? ? to_key.join('-') : nil end |