How to get the list of all engines in Rails 3 app

前端 未结 3 763
名媛妹妹
名媛妹妹 2021-02-09 05:19

According to Rails engines extending functionality in Rails 2.x one could do

Rails::Initializer.new(Rails.configuration).plugin_loader.engines

3条回答
  •  自闭症患者
    2021-02-09 05:21

    This has changed with Rails 4.1. The accepted answer is deprecated and the new way to get the installed Engines for a Rails application is now:

    ::Rails::Engine.subclasses.map(&:instance)
    

    Here's a reference to the commit in github making the change (and also showing how it was implemented after initial deprecation...)

    If you need to use the previous solution from Rails 4.1:

    module Rails
        class Engine
            class Railties
                def self.engines
                    @engines ||= Rails::Engine.subclasses.map(&:instance)
                end
            end
        end
    end
    

提交回复
热议问题