定义一个本地宝石

时间:2014-02-20 06:20:31

标签: ruby-on-rails gemfile

我已将一些常见的功能转移到一个独立的宝石上并且一直在使用它。在制作中,我直接从包含了宝石。

#common
gem 'engine', path: '../engine'
#gem 'engine', branch: 'master', git: 'source to engine.git'

问题是,当我进入开发模式时,我会注释掉第二行并在签入之前将其还原。这对我每次登记都很烦人。我无法添加{{3} } 因为应用程序仍在开发中,我们会一直修改此文件。

我尝试使用

分别对它们进行分组
group :development, :test do
   gem 'engine', path: '../engine'
group :production do
   gem 'engine', branch: 'master', git: 'source to engine.git'

但它抛出一个错误,说我无法定义两次宝石。我不明白我在这里做错了什么。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

gem在两组中实际上定义了两次,因为Gemfile解析器无论如何只是看到了一个组。尝试关闭if条件下的生产环境的gem:

group :development, :test do
   if ENV[ 'RAILS_ENV' ] != 'production'
      gem 'engine', path: '../engine'
   end
end

group :production do
   if ENV[ 'RAILS_ENV' ] == 'production'
      gem 'engine', branch: 'master', git: 'source to engine.git'
   end
end