在2.3.5中创建rails引擎作为插件时,如何在插件中设置gem依赖项,而不必将它们导入到宿主应用程序环境中.rb?
基本上,我需要能够在environment.rb调用Initializer.run之后调用“config.gem”,因为当配置块在范围内时尚未加载插件。
此应用程序不使用bundler。
答案 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