I need to know, from inside of a layout of a mountable engine, what path it\'s currently being mounted on. What would be the way to do it?
E.g. my routes.rb contains the
If the engine is mouted :as =>
a different name, querying named_routes
will not be sufficient. This monkey patch will do:
class Rails::Engine
def self.mounted_path
route = Rails.application.routes.routes.detect do |route|
route.app == self
end
route && route.path
end
end
Now call mounted_path
on the engine:
BackendCore::Engine.mounted_path => "/backend"
Note: be careful, in production mode, the classes in your engine are evaluated before the routes of the main app are loaded. Calling this method in class macros might not work!