And*_*rei 7 rubygems ruby-on-rails ruby-on-rails-plugins rails-engines ruby-on-rails-3
根据Rails引擎扩展 Rails 2.x中的功能,可以做到
Rails::Initializer.new(Rails.configuration).plugin_loader.engines
Run Code Online (Sandbox Code Playgroud)
此代码在Rails 3中不起作用
ActionController::RoutingError (undefined method `new' for Rails::Initializer:Module):
config/application.rb:12:in `require_or_load'
Run Code Online (Sandbox Code Playgroud)
在Rails 3中我需要做些什么才能获得这样的引擎列表?
Dar*_*cks 15
这已经改变了Rails 4.1.已弃用的答案已被弃用,现在为获取已安装的Rails应用程序引擎的新方法如下:
::Rails::Engine.subclasses.map(&:instance)
Run Code Online (Sandbox Code Playgroud)
这是对github中的提交进行更改的引用(并且还显示了在初始弃用后如何实现它...)
如果您需要使用Rails 4.1中的先前解决方案:
module Rails
class Engine
class Railties
def self.engines
@engines ||= Rails::Engine.subclasses.map(&:instance)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
Jer*_*nes 13
截至2011年5月10日和Rails 3.1测试版,它现在
Rails::Application::Railties.engines
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2866 次 |
| 最近记录: |