我正在尝试结合使用本文概述的方法来确定url_for
当前路径是否在已安装的引擎中,但是我很难弄清楚如何准确使用Journey::Path::Pattern
(这是mounted_path
概述的方法返回的内容)在另一篇文章中)。
class Rails::Engine
def self.mounted_path
route = Rails.application.routes.routes.detect do |route|
route.app == self
end
route && route.path
end
end
除了官方文档之外,似乎没有太多关于它的讨论,这并不是特别有用。我确定解决方案相对简单,我尝试编写的辅助方法的要点如下:
def in_engine? engine
current_url.include?(engine.mounted_path)
end
编辑:
我的一些引擎被挂载为子域,而一些被挂载在应用程序本身中,这使我无法简单地检查当前子域是否与挂载路径相同,或者使用path_for
.