如何在Gemfile中使用条件

时间:2011-03-16 09:49:08

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems

我的Gemfile中有这些组:

group :development, :test do
   gem 'sqlite3'
end
group :production do
  gem 'mysql'
end

开发机器没有安装MySQL,这就是为什么我只在生产组中列出MySQL。但是当我尝试在开发机器上运行Rails时,我得到了这个:

$> RAILS_ENV=development ./script/rails 
Could not find gem 'mysql (>= 0, runtime)' in any of the gem sources listed in your Gemfile.

显然我可以通过安装MySQL来解决这个问题,但我想知道正确的解决方案,而不是安装不需要的软件。

3 个答案:

答案 0 :(得分:5)

您需要安装gem。 Bundler(Rails的底层gem管理器)需要它,因此您可以在开发中解决潜在的依赖冲突,而不是在滚动到生产时发现您有宝石冲突。 Yehuda(Bundler的建设者)写了一篇关于它的博客文章,请看标题为“Consistency”的部分。

http://yehudakatz.com/2010/05/09/the-how-and-why-of-bundler-groups/

答案 1 :(得分:2)

您在更改Gemfile后重新运行“bundle install”吗?

答案 2 :(得分:1)

只需运行bundle install --without production