Изменить версию используемых рельсов - PullRequest
0 голосов
/ 03 февраля 2012

У меня было приложение для RoR, работающее под Fedora14, я обновился до Fedora16, и теперь это сломанный беспорядок.

Это связано с изменением используемых направляющих: Fedora 14 работает на 2.x исейчас Fedora 15/16 работает под управлением 3.x

У меня установлен rvm, ранее у меня не было установлен gem rails, поэтому он вернется к системе (?).Итак, я установил гем для rails 2.3.8, он появляется, когда я делаю список гемов, но приложение все еще не работает.

У кого-нибудь есть какие-либо подсказки, что я должен проверить,do, smash?

Итак, я добавил это в свой config / enviroment.rb

  config.gem "rails", :version => "~> 2.3.8"

, и при запуске я теперь получаю эту ошибку (это было в одной строке).

Error message:
    NOTE: Gem.source_index is deprecated, use Specification. 
    It will be removed on or after 2011-11-01. Gem.source_index called from /var/work_sites/mysite/vendor/rails/railties/lib/rails/gem_dependency.rb:106. 

    NOTE: Gem::SourceIndex#search is deprecated with no replacement. 
    It will be removed on or after 2011-11-01. Gem::SourceIndex#search called from /var/work_sites/mysite/vendor/rails/railties/lib/rails/gem_dependency.rb:106.
    Missing these required gems: rails ~> 2.3.8 You're running: ruby 1.8.7.357 at /usr/bin/ruby rubygems 1.8.11 at /usr/lib/ruby/gems/1.8, /home/nick/.gem/ruby/1.8 Run `rake gems:install` to install the missing gems. 

однако $ gem list

*** LOCAL GEMS ***

...
rails (2.3.8)
....

, поэтому я все равно пытаюсь;

$ rake gems:install
rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
Missing these required gems:
  rails  ~> 2.3.8

You're running:
  ruby 1.8.7.352 at /home/nick/.rvm/rubies/ruby-1.8.7-p352/bin/ruby
  rubygems 1.8.10 at /home/nick/.rvm/gems/ruby-1.8.7-p352, /home/nick/.rvm/gems/ruby-1.8.7-p352@global

Run `rake gems:install` to install the missing gems.

ARGHH!

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.10
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/nick/.rvm/gems/ruby-1.8.7-p352
  - RUBY EXECUTABLE: /home/nick/.rvm/rubies/ruby-1.8.7-p352/bin/ruby
  - EXECUTABLE DIRECTORY: /home/nick/.rvm/gems/ruby-1.8.7-p352/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/nick/.rvm/gems/ruby-1.8.7-p352
     - /home/nick/.rvm/gems/ruby-1.8.7-p352@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

1 Ответ

0 голосов
/ 03 февраля 2012

Если приложение «разумного размера» (пробег может отличаться), используйте эту возможность для обновления до рельсов 3. Рельсы 4 выйдут этой весной, и у вас не будет лучшего времени, чем сейчас, чтобы выполнить обновление.Я хотел бы сделать v3.0.11 изначально и перейти на 3.1.x, если он идет хорошо.Признайтесь, вы не хотите делать это снова скоро.В этот момент вы также обнаружите, что любые проблемы, с которыми вы сталкиваетесь, обычно встречаются и решаются другими пользователями и могут быть найдены в сети, через SO и т. Д.

Это поможет:

http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1

http://ryanbigg.com/2010/11/the-rails-3-upgrade/

http://www.railsupgradehandbook.com/ ($ 12)

Ruby и Rails меняются очень быстро, и поддержание некоторой актуальности действительно важно, а не просто хорошо.иметь'.На данный момент гемы больше соответствуют рельсам 3

Пока вы занимаетесь этим, вам следует установить ruby ​​1.9.3 Вполне вероятно, что у вас не будет проблем с этим, если в коде нет сложного ruby.Ruby 2.0 скоро выйдет.

Как советуют другие, rvm является ключом к управлению версиями ruby.После установки вы можете переключать версии ruby ​​с помощью такой простой команды, как rvm use 1.9.2, и вы можете создать файл .rvrmc в корне проекта, чтобы установить версию ruby ​​для этого проекта.

Однаждывам нужно сделать что-то кроме установки гема, который помещается в файл (ы) окружения - rails 2 или в ваш Gemfile and Bundle - rails 3

...