управление различными версиями rails 2.3.x в разработке/производстве с помощью сборщика

Я пытаюсь настроить Bundler для работы с разными версиями Rails 2.3.x, используя руководство на веб-сайте bunder. , чтобы я мог протестировать версию в среде разработки, прежде чем ее использовать в производстве. У меня есть следующий Gemfile:

# some common gems

group :development do
  # installed on dev machine
  gem "rails", "2.3.11" 

  #... some more dev gems
end

group :production do
  gem "rails", "2.3.8", :path => 'vendor/rails'
end

Когда я пытаюсь запустить сервер в режиме разработки, я получаю ошибку сборщика You cannot specify the same gem twice with different version requirements. You specified: rails (= 2.3.11) and rails (= 2.3.8) (Bundler::DslError). Что мне не хватает? Я думал, что целью Бандлера было помочь мне сделать именно это. Благодарю.


person sa125    schedule 24.02.2011    source источник


Ответы (1)


http://gembundler.com/groups.html

Я думаю, вам просто нужно указать, какую группу вы устанавливаете. Я думаю, по умолчанию он просто проходит по всем группам, поэтому просто укажите, что вам не нужно.

bundle install --without production

с той же страницы:

Требовать драгоценные камни в определенных группах, отметив, что драгоценные камни вне именованной группы находятся в группе :default

Bundler.require(:default, :development)

Требовать драгоценные камни по умолчанию, а также драгоценные камни в группе с тем же именем, что и текущая среда Rails.

Bundler.require(:default, Rails.env)

В этом случае нужен второй.

person corroded    schedule 24.02.2011
comment
Я ценю этот совет, хотя я не пытаюсь установить драгоценные камни, просто запускаю скрипт/сервер — драгоценные камни либо устанавливаются на машину, либо доступны в поставщике/гемах. Я получаю эту ошибку, когда рельсы пытаются инициализировать. - person sa125; 24.02.2011
comment
тогда вам просто нужно потребовать определенные драгоценные камни в зависимости от вашей среды. если вы читаете эту страницу, посмотрите мой отредактированный ответ - person corroded; 24.02.2011
comment
решение Bundler.require(..) не работает для разных источников драгоценных камней, как я его настроил (все еще получаю эту ошибку). Я изучил это, и кажется, что это запланировано для Bundler 1.1 (по крайней мере, согласно этому bit.ly/bjdk0C). Спасибо еще раз! - person sa125; 24.02.2011