gpt4 book ai didi

ruby-on-rails - 如何获取 Rails 3 应用程序中所有引擎的列表

转载 作者:行者123 更新时间:2023-12-04 09:02:57 25 4
gpt4 key购买 nike

根据 Rails engines extending functionality在 Rails 2.x 中可以做到

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

此代码在 Rails 3 中不起作用
ActionController::RoutingError (undefined method `new' for Rails::Initializer:Module):
config/application.rb:12:in `require_or_load'

我需要在 Rails 3 中做什么才能获得这样的引擎列表?

这是 Extending controllers of a Rails 3 Engine in the main app 所需要的

最佳答案

这在 Rails 4.1 中发生了变化。已接受的答案已弃用,现在为 Rails 应用程序获取已安装引擎的新方法是:

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

Here's a reference to the commit in github进行更改(并显示在最初弃用后它是如何实现的......)

如果您需要使用 Rails 4.1 中的先前解决方案:
module Rails
class Engine
class Railties
def self.engines
@engines ||= Rails::Engine.subclasses.map(&:instance)
end
end
end
end

关于ruby-on-rails - 如何获取 Rails 3 应用程序中所有引擎的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5049640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com