43 votes

impossible de charger railtie après la mise à jour vers rails 4 par ruby.railstutorial.org

Le système d'exploitation est Ubuntu 12.04, 64 bits.

Nouveau sur les rails. Relativement nouveau en Ruby. Je suis le tutoriel ruby.railstutorial.org, chapitre 3.

Le tutoriel a été mis à jour pour utiliser ruby 2.0.0 et Rails 4.0.0.rc1. Auparavant, le fichier Gemfile spécifiait Rails 3.2.13 et ne spécifiait pas la version de Ruby. Après être passé au dernier Gemfile du tutoriel, ruby 2.0.0 et Rails 4.0.0.rc1, j'obtiens l'erreur suivante lors de l'exécution des commandes de rails. Voici un exemple serveur de rails

    user@machine:~/bin/railslearn/sample_app$ rails server
/home/paul/bin/railslearn/sample_app/config/application.rb:7:in `require': cannot load such file -- active_resource/railtie (LoadError)
    from /home/paul/bin/railslearn/sample_app/config/application.rb:7:in `<top (required)>'
    from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `require'
    from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `block in <top (required)>'
    from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `tap'
    from /home/paul/.rvm/gems/ruby-2.0.0-p195@railstutorial_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

J'ai eu quelques idées de Rails : Impossible de trouver des rails mais je n'ai pas encore trouvé de solution.

Voici les détails.

Hier (dans mon navigateur), le Gemfile du chapitre 3 était le suivant. Tout fonctionnait bien.

$ cat Gemfile
source 'https://rubygems.org'

gem 'rails', '3.2.13'
gem 'bootstrap-sass', '2.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.11.0'
  # gem 'guard-rspec', '1.2.1'
  # gem 'guard-spork', '1.2.0'  
  # gem 'childprocess', '0.3.6'
  # gem 'spork', '0.9.2'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.3'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '4.1.0'
  gem 'cucumber-rails', '1.2.1', :require => false
  gem 'database_cleaner', '0.7.0'
  # gem 'launchy', '2.1.0'
  # gem 'rb-fsevent', '0.9.1', :require => false
  # gem 'growl', '1.0.3'
end

group :production do
  gem 'pg', '0.12.2'
end

Ce matin, les Gemfiles du tutoriel utilisent ruby 2.0.0 et rails 4.0.0.rc1. J'aimerais que cette configuration fonctionne, afin de ne pas avoir de conflits avec le tutoriel mis à jour. Le nouveau Gemfile est le suivant.

$ cat Gemfile
source 'https://rubygems.org'
ruby '2.0.0'

gem 'rails', '4.0.0.rc1'

group :development, :test do
  gem 'sqlite3', '1.3.7'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.0.0'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '4.0.0.rc1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '2.2.1'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
  gem 'sdoc', '0.3.20', require: false
end

group :production do
  gem 'pg', '0.15.1'
end

J'ai d'abord changé la version de ruby dans le Gemfile en ruby '1.9.2' parce que c'est ce que je faisais tourner, et je pense que j'ai eu une erreur avec la mise à jour du bundle. Je n'ai pas pris de notes.

Puis j'ai changé la version de ruby en '2.0.0' dans le Gemfile et :

$ rvm install 2.0.0
$ rvm use 2.0.0 --default
$ bundle update
$ bundle install

Maintenant, je reçois le Impossible de charger le railtie erreur avec les commandes de rails.

De Rails : Impossible de trouver des rails J'ai essayé ce qui suit

$ gem uninstall railties

Select gem to uninstall:
 1. railties-4.0.0.rc1
 2. railties-3.2.13
 3. All versions
> 2

You have requested to uninstall the gem:
    railties-3.2.13

rails-3.2.13 depends on railties (= 3.2.13)
If you remove this gem, these dependencies will not be met.
Y # uninstall railties-3.2.13

Je reçois toujours l'erreur

$ gem uninstall rails # to uninstall rails-3.2.13
$ gem uninstall railties # to also uninstall railties-4.0.0.rc1
$ rvm reinstall 2.0.0
$ rvm 2.0.0 --default
$ bundle update # using the Gemfile with ruby 2, rails 4
$ bundle install

$ gem list | grep rail
coffee-rails (4.0.0)
jquery-rails (2.2.1)
rails (4.0.0.rc1)
railties (4.0.0.rc1)
rspec-rails (2.13.1)
sass-rails (4.0.0.rc1)
sprockets-rails (2.0.0.rc4)

Je reçois toujours l'erreur

Je reviens à la configuration originale du tutoriel du premier chapitre (maintenant mis à jour pour ruby 2, rails 4).

$ rvm use 2.0.0@railstutorial_rails_4_0 --create --default
$ gem update --system 2.0.0
$ gem install rails --version 4.0.0.rc1 --no-ri --no-rdoc
$ bundle update # using Gemfile with ruby 2, rails 4
$ bundle install

Je reçois toujours l'erreur

ug ! !!

Des idées ?

69voto

AndyV Points 1376

ActiveResource était une API ajoutée dans Rails 2.x pour prendre en charge une API XML (et plus tard JSON) afin que les sites Rails puissent "parler" entre eux. C'était un sujet très chaud lorsque l'idée des API RESTful a fait son chemin dans le framework. Au fil du temps, elle est devenue une nouveauté et n'a pas été fréquemment maintenue. Elle a donc été retirée du noyau de Rails 4.x.

Vous avez deux options avec Rails 4.x. Si vous n'avez pas l'intention d'utiliser ActiveResource (je suppose que c'est le cas si vous êtes nouveau dans Rails et que vous travaillez sur un tutoriel), vous pouvez simplement supprimer ou commenter le railtie qui l'intègre dans le framework. Ouvrez 'config/application.rb' et commentez la septième ligne.

require File.expand_path('../boot', __FILE__)

# Pick the frameworks you want:
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
# require "active_resource/railtie"    <--- comment out this line

Si vous voulez utiliser ActiveResource, il suffit de l'ajouter au Gemfile du projet. Auparavant, il était inclus par la gemme rails en tant que dépendance ; maintenant vous devrez l'ajouter explicitement si vous voulez l'utiliser.

3voto

prashantsahni Points 344

Activeresource" est disponible en tant que gemme distincte de Rails 4.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X