代码之家  ›  专栏  ›  技术社区  ›  aceofspades

Rails 2.3.5引擎(插件)如何指定GEM要求

  •  3
  • aceofspades  · 技术社区  · 14 年前

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

    基本上,我需要能够在environment.rb调用initializer.run之后调用“config.gem”,因为当config块在作用域中时插件没有被加载。

    此应用程序不使用Bundler。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Taryn East    14 年前

    我认为您可以在init.rb中运行rails初始值设定项,例如:

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

    如果把它放在in it.rb中不调用它,我们的一个引擎有一个bootfile,它只包含一个带有方法的类,该方法包含与上面相同的初始化器内容。如:

    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中需要bootfile,类方法名为eg

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