Как я могу понизить мою версию rails?

#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #bundler

#ruby-on-rails #ruby #ruby-on-rails-3 #rubygems #bundler

Вопрос:

У меня есть приложение, в котором мои тесты проходят для rails 3.0.6. Я определил коммит git, где единственное изменение заключается в том, что я меняю версию rails в моем Gemfile с 3.0.6 на 3.0.8 и запускаю обновление пакета. После этого мои тесты завершаются неудачей … достаточно справедливо. Однако, когда я пытаюсь понизить версию до 3.0.6, мои тесты ПО-ПРЕЖНЕМУ завершаются неудачей .. предполагая, что что-то не работает с понижением. Я пытаюсь выполнить следующие действия

 change version in Gemfile from 3.0.8 to 3.0.8
run bundle update
rm Gemfile.lock
rm  -rf vendor/bundle/*
bundle install
  

И после этого мои тесты все еще терпят неудачу. Я в растерянности .. я что-то упускаю в процессе понижения?

Редактировать:

У меня было ошибочное предположение, что больше ничего не изменилось, когда я изменил версию rails в моем Gemfile. Запустив

 bundle update
  

мой Gemfile.в итоге lock обновил некоторые из моих драгоценных камней до их более новых версий на github, и эти новые коммиты нарушили работу. Когда я ссылаюсь на рабочий коммит в моем Gemfile, все снова работает

 gem "carrierwave", :git => 'https://github.com/jnicklas/carrierwave.git', :ref => "0d2e9ee8706074059cb78f2f85232caf17327952"
  

Комментарии:

1. Как вы запускаете тесты? Попробуйте выполнить «rake bundle exec ….» вместо просто «rake ….»

2. да, я использую пакет exec rspec spec/models / mymodel.rb

3. У вас есть ваш Gemfile. в git установлена блокировка? Если да, то изменились ли какие-либо другие драгоценные камни при обновлении Rails?

4. Вы правы, Анобл.. вот что произошло..

5. Я предлагаю вам использовать bundle update rails при обновлении rails и изменять ваш Gemfile. заблокируйте, чтобы увидеть, что еще изменилось.

Ответ №1:

взгляните на RVM (расшифровывается как ruby version manager)

и в этой статье рассказывается все о том, как управлять вашими драгоценными камнями (например: для каждого проекта отдельный набор драгоценных камней)

Комментарии:

1. 1 ( 1000!) для RVM. Также @Noli, в ситуации, которую вы описываете, часто лучше удалить ваш Gemfile. заблокируйте и сделайте bundle install , чтобы создать ее заново с нуля.

2. Спасибо, но я не вижу, как RVM помогает в этом случае (и я все равно использую файл projct .rvmrc здесь). Моя проблема заключалась в том, что gem изменился, потому что я ссылался на ЗАГОЛОВОК на github в моем Gemfile, в отличие от конкретного коммита.

3. если вы на 100% уверены, что ваш код работает (так что это действительно ошибка rails), просто начните с нуля, создайте новый git-клон проекта, измените Gemfile и убедитесь, что у вас есть чистый gemset (форма rvm, путем создания clean .rvmrc с содержимым rvm -create используйте default@PROJECTNAME > /dev / null