Module: Trek::Model
- Extended by:
- ActiveSupport::Concern
- Included in:
- ResourceController
- Defined in:
- app/controllers/concerns/trek/model.rb
Instance Method Summary collapse
- #model ⇒ Object
- #model_collection ⇒ Object
-
#model_collection_route ⇒ Object
Returns model collection as an array of symbols for route building.
- #model_element ⇒ Object
-
#model_element_route ⇒ Object
Returns model element as an array of symbols for route building.
- #model_intro(action: nil) ⇒ Object
- #model_objects ⇒ Object
Instance Method Details
#model ⇒ Object
11 12 13 |
# File 'app/controllers/concerns/trek/model.rb', line 11 def model raise "Please define a `model` method in your controller." end |
#model_collection ⇒ Object
19 20 21 |
# File 'app/controllers/concerns/trek/model.rb', line 19 def model_collection model_name.collection.to_sym end |
#model_collection_route ⇒ Object
Returns model collection as an array of symbols for route building. For namespaced models like Missive::List, returns [:missive, :lists]. For non-namespaced models like Page, returns [:pages].
26 27 28 |
# File 'app/controllers/concerns/trek/model.rb', line 26 def model_collection_route model_name.collection.split("/").map(&:to_sym) end |
#model_element ⇒ Object
30 31 32 |
# File 'app/controllers/concerns/trek/model.rb', line 30 def model_element model_name.element.to_sym end |
#model_element_route ⇒ Object
Returns model element as an array of symbols for route building. For namespaced models like Missive::List, returns [:missive, :list]. For non-namespaced models like Page, returns [:page]. Derived from collection (which preserves namespace) rather than element (which demodulizes).
39 40 41 42 |
# File 'app/controllers/concerns/trek/model.rb', line 39 def model_element_route parts = model_name.collection.split("/") (parts[0...-1] + [parts.last.singularize]).map(&:to_sym) end |
#model_intro(action: nil) ⇒ Object
44 45 46 47 |
# File 'app/controllers/concerns/trek/model.rb', line 44 def model_intro(action: nil) action ||= @object&.new_record? ? "new" : "edit" t("admin.#{model_collection}.#{action}.intro") end |
#model_objects ⇒ Object
15 16 17 |
# File 'app/controllers/concerns/trek/model.rb', line 15 def model_objects model.all end |