Bundler包括忽略组中的gem

时间:2014-03-05 18:05:02

标签: ruby bundler

当我Bundle.require(:default)时,我收到一条错误消息,指出我的测试组中没有找到其中一颗宝石。我安装了这个包--without test,所以这是有道理的,但是不应该忽略:test组中的所有宝石吗?这不是重点吗?

关于这种环境可能出现什么问题的想法?

修改

这可能与我为此项目的设置有关。我正使用vendor/cache缓存bundle package --all中的宝石。我的缓存有来自git,文件和传统来源的宝石。 Bundler正在报道

  

您的供应商/缓存中似乎缺少某些宝石 - >不能   找到

所需的gem factory_girl

1 个答案:

答案 0 :(得分:0)

尝试编辑gemfile,使其fg如下:

group :development do
    gem 'factory_girl'
end

然后它不会在测试组中查找它。或者,我无法确定你真正想要的是哪个群组,但我的观点是将其限制在你想要的群体中。

另外,请尝试运行Bundler.require(:default, Rails.env)而不是(:default)。这将使其回到标准的Rails要求。

最后,我想你正在尝试安装gems进行开发(或生产?)你试过运行bundle install --without test production以确保没有任何东西来自你没有关注的其他组吗?

编辑: 在我没有想法之前的最后一次尝试。从文档中可以看出,您可以指定加载路径以及需要它们。尝试设置Bundler.setup?我在这台机器上没有导轨环境,所以我无法测试。

Bundle.setup(:production)
Bundle.require(:production)

Bundle.setup(:production, :default)
Bundle.require(:production, :default)