Как использовать условные выражения в Gemfile

У меня есть эти группы в моем 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, но я хотел бы знать правильное решение вместо установки ненужного программного обеспечения.

Ответы

Ответ 1

Вам нужно установить камень. Bundler (базовый менеджер драгоценных камней для Rails) требует его, чтобы вы могли разрешить потенциальные конфликты зависимостей в процессе разработки, а не обнаруживать, что у вас есть конфликты драгоценных камней, когда вы переходите к производству. Иегуда (строитель Бундлера) написал на нем сообщение в блоге, посмотрите раздел "Согласованность".

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

Ответ 2

Вы повторно запустили "bundle install" после изменения Gemfile?

Ответ 3

Просто запустите bundle install --without production