【问题标题】:Rails 2.3.5 engine (plugin) how to specify gem requirementsRails 2.3.5引擎(插件)如何指定gem需求
【发布时间】:2010-07-19 19:41:43
【问题描述】:

在 2.3.5 作为插件创建 Rails 引擎时,如何在插件中设置 gem 依赖项,而无需将它们导入宿主应用程序 environment.rb?

基本上,我需要能够在 environment.rb 调用 Initializer.run 之后调用“config.gem”,因为当配置块在范围内时,插件尚未加载。

没有为此应用程序使用捆绑器。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-plugins


    【解决方案1】:

    我认为您可以在 init.rb 中运行 Rails Initializer 的内容,例如:

    Rails::Initializer.run do |config|
      config.gem 'fastercsv', :version => '1.4.0'    
      config.gem 'liquid', :version => '2.0.0'
    end
    

    如果将它放在 init.rb 中没有调用它,我们的一个引擎有一个引导文件,它只包含一个类,该类的方法包含与上面相同的 Initialiser 内容。例如:

    class MyBootClass
      def self.boot_up  
        Rails::Initializer.run do |config|
          config.gem 'fastercsv', :version => '1.4.0'    
          config.gem 'liquid', :version => '2.0.0'
        end
      end
    end
    

    在 environment.rb 和类方法中需要引导文件,例如

    require "#{File.dirname(__FILE__)}/../vendor/plugins/.../bootfile.rb"
    MyBootClass.boot_up
    

    【讨论】:

    • 谢谢——这实际上也是我不情愿地找到的解决方案。希望在插件中保持独立,但也许这将不得不等待 Rails 3.0...
    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多