在Rails 3中,我可以通过调用 MyEngine::Engine.class.mounted_path
来区分已安装(或可安装)的引擎与“其他”引擎。这在Rails 4中不起作用。基于此question,railties似乎已被弃用。Rails 4列表安装引擎
如何区分Rails 4中的可挂载引擎?
在Rails 3中,我可以通过调用 MyEngine::Engine.class.mounted_path
来区分已安装(或可安装)的引擎与“其他”引擎。这在Rails 4中不起作用。基于此question,railties似乎已被弃用。Rails 4列表安装引擎
如何区分Rails 4中的可挂载引擎?
我用建议找到here来创建我自己的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
还在寻找更好的答案。
Rails::Engine.subclasses
这将返回安装的发动机。
这将返回所有引擎,例如Coffee,Turbolinks和Devise。我指的是你自己的自定义挂载引擎,如http://edgeguides.rubyonrails.org/engines.html所示 – RailinginDFW 2016-01-12 18:02:28