Class: FriendlyRoutes::Params::CollectionParams
- Defined in:
- lib/friendly_routes/params/collection_params.rb
Instance Attribute Summary collapse
-
#collection ⇒ Object
Returns the value of attribute collection.
-
#key_attr ⇒ Object
Returns the value of attribute key_attr.
Attributes inherited from Base
Instance Method Summary collapse
- #constraints ⇒ Object
-
#initialize(name, collection, key_attr, optional: true) ⇒ CollectionParams
constructor
A new instance of CollectionParams.
- #parse(value) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(name, collection, key_attr, optional: true) ⇒ CollectionParams
Returns a new instance of CollectionParams.
8 9 10 11 12 13 |
# File 'lib/friendly_routes/params/collection_params.rb', line 8 def initialize(name, collection, key_attr, optional: true) super(:collection, name, optional) @collection = collection @key_attr = key_attr check_params end |
Instance Attribute Details
#collection ⇒ Object
Returns the value of attribute collection.
6 7 8 |
# File 'lib/friendly_routes/params/collection_params.rb', line 6 def collection @collection end |
#key_attr ⇒ Object
Returns the value of attribute key_attr.
6 7 8 |
# File 'lib/friendly_routes/params/collection_params.rb', line 6 def key_attr @key_attr end |
Instance Method Details
#constraints ⇒ Object
15 16 17 |
# File 'lib/friendly_routes/params/collection_params.rb', line 15 def constraints Regexp.new @collection.all.map(&@key_attr).compact.map(&:downcase).join('|') end |
#parse(value) ⇒ Object
19 20 21 |
# File 'lib/friendly_routes/params/collection_params.rb', line 19 def parse(value) @collection.find_by(@key_attr => value).try(:id) end |