Module: HasHelpers::ActiveRecord::NestedResource
- Defined in:
- lib/has_helpers/active_record/nested_resource.rb
Defined Under Namespace
Modules: PrependedMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#to_service(use_base_class: false, owner_instance: owner, action: :edit, resources: [ *action, owner_instance, use_base_class ? self.becomes(self.class.base_class) : self ], **options) ⇒ Object
Generate a service with a nested URL, where the base is generated using the current object's owner.
Class Method Details
.included(klass) ⇒ Object
9 10 11 |
# File 'lib/has_helpers/active_record/nested_resource.rb', line 9 def self.included(klass) klass.prepend(PrependedMethods) end |
Instance Method Details
#to_service(use_base_class: false, owner_instance: owner, action: :edit, resources: [ *action, owner_instance, use_base_class ? self.becomes(self.class.base_class) : self ], **options) ⇒ Object
Generate a service with a nested URL, where the base is generated using the current object's owner.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/has_helpers/active_record/nested_resource.rb', line 15 def to_service( use_base_class: false, # Use the base class instance of the current object. Only applies to STI models. owner_instance: owner, action: :edit, resources: [ *action, owner_instance, use_base_class ? self.becomes(self.class.base_class) : self ], ** ) route_name_parts = [] route_resources = [] resources.each do |resource| case resource when String, Symbol route_name_parts << resource else route_name_parts << resource.class.name.demodulize.underscore route_resources << resource end end route_name = "#{ route_name_parts.join("_") }_path" super( url: ::HasHelpers::BasePresenter::Routing.routes.send(route_name, *route_resources), ** ) end |