web-dev-qa-db-fra.com

impossible de charger railtie après la mise à niveau vers Rails 4 par Ruby.railstutorial.org

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

Nouveau sur Rails. Relativement nouveau pour Ruby. Suite au tutoriel Ruby.railstutorial.org, chapitre 3.

Le didacticiel a été mis à jour pour utiliser Ruby 2.0.0 et Rails 4.0.0.rc1. Auparavant, le gemfile spécifiait Rails 3.2.13 et ne spécifiait pas la version Ruby. Après être passé au dernier Gemfile du didacticiel, Ruby 2.0.0 et Rails 4.0.0.rc1, j'obtiens l'erreur suivante lors de l'exécution des commandes Rails. Voici un exemple Serveur 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 , décrit ci-dessous, 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 didacticiel utilisent Ruby 2.0.0 et Rails 4.0.0.rc1. J'aimerais que cette configuration fonctionne, donc je n'ai pas 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 Ruby dans le Gemfile en Ruby '1.9.2' parce que c'est ce que j'exécutais, et je pense que j'ai eu une erreur avec la mise à jour du bundle. Je n'ai pas pris de notes.

Ensuite, changé la version 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 l'erreur ne peut pas charger l'erreur railtie avec les commandes Rails.

De Rails: impossible de trouver des chemins de fer , 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

toujours obtenir 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)

toujours obtenir l'erreur

Revenir à la configuration d'origine à partir du tutoriel du chapitre un (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

toujours obtenir l'erreur

ug !!!

Des idées?

43
Paul S

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 "communiquer" entre eux. C'était un sujet très chaud lorsque l'idée des API RESTful a fait son chemin dans le cadre. Au fil du temps, il est devenu plus une nouveauté et rarement maintenu, il a donc été retiré du noyau dans Rails 4.x.

Vous avez deux options dans Rails 4.x. Si vous n'aviez pas l'intention d'utiliser ActiveResource (je suppose que c'est le cas si vous êtes nouveau dans Rails et travaillez sur un didacticiel), vous pouvez simplement supprimer ou commenter le railtie qui le tire dans le cadre. 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 souhaitez utiliser ActiveResource, ajoutez-le simplement au Gemfile du projet. Auparavant, il était inclus par la gemme Rails comme dépendance; maintenant vous devrez l'ajouter explicitement si vous voulez l'utiliser.

69
AndyV

'activeresource' est disponible en tant que gemme distincte de Rails 4

3
prashantsahni

J'ai eu la même erreur. ce que j'ai fait est: dans Gemfile j'ai changé de version de Rails: gem 'Rails', '4.2.0' Puis en ligne de commande a exécuté cette commande: bundle install. Pour voir quels générateurs à notre disposition tapez Rails g ou Rails generate sur CLI.

0
Janatbek Sharsheyev