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

时间:2010-07-19 19:41:44

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

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

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

此应用程序不使用bundler。

1 个答案:

答案 0 :(得分:0)

我认为您可以在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中没有调用它,我们的一个引擎有一个bootfile,它只包含一个类,其方法包含与上面相同的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