web-dev-qa-db-ja.com

Rails Ruby.railstutorial.orgごとに4にアップグレードした後にレールタイをロードできません

OSはUbuntu 12.04、64ビットです。

Railsの新機能。 Rubyに比較的新しい。 Ruby.railstutorial.orgチュートリアルの第3章に従ってください。

チュートリアルは、Ruby 2.0.0およびRails 4.0.0.rc1を使用するように更新されました。以前、gemfileはRails 3.2.13を指定し、Rubyバージョンを指定していませんでした。チュートリアルの最新のGemfile Ruby 2.0.0およびRails 4.0.0.rc1に移動した後、Railsコマンドを実行すると次のエラーが発生します。ここの例は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>'

Rails:railtiesが見つかりませんでした からいくつかのアイデアを得ましたが、以下に概説しましたが、まだ修正が見つかりませんでした。

詳細は次のとおりです。

昨日(私のブラウザでは)第3章のGemfileは次のとおりでした。すべてがうまくいきました。

$ 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

今朝、チュートリアルのGemfilesはRuby 2.0.0およびRails 4.0.0.rc1を使用しています。このセットアップを機能させたいので、更新されたチュートリアルと競合しません。新しいGemfileは次のとおりです。

$ 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

まず、GemfileのRubyバージョンをRuby '1.9.2'に変更しました。これが実行中だったためです。バンドルの更新でエラーが発生したと思います。メモを取らなかった。

次に、GemfileでRubyバージョンを「2.0.0」に戻し、次のようにしました。

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

現在、Railsコマンドでrailtieエラーをロードできません。

レール:レールが見つかりませんでした から、次のことを試しました

$ 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

まだエラーが発生する

$ 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)

まだエラーが発生する

第1章のチュートリアルの元の設定に戻ります(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

まだエラーが発生する

ug !!!

何か案は?

43
Paul S

ActiveResourceはRails 2.xで追加されたAPIであり、XML(およびそれ以降のJSON)APIをサポートして、Railsサイトが互いに「通信」できるようにしました。 RESTful APIのアイデアがフレームワークに取り入れられたとき、それは非常にホットなトピックでした。時間が経つにつれて、それは目新しいものになり、あまりメンテナンスされないため、Rails 4.xでコアから削除されました。

Rails 4.xには2つのオプションがあります。 ActiveResourceを使用するつもりがなかった場合(Railsを初めて使用し、チュートリアルに取り組んでいる場合はこれが当てはまります)、単純にそれを引っ張っているレールタイを削除またはコメントアウトできます枠組み。 「config/application.rb」を開き、7行目をコメントアウトします。

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

ActiveResourceを使用する場合は、プロジェクトのGemfileに追加するだけです。以前は、Rails gemに依存関係として含まれていました。使用する場合は、明示的に追加する必要があります。

69
AndyV

「activeresource」は、Rails 4

3
prashantsahni

同じエラーが発生しました。私が作ったのは:GemfileでRailsのバージョンを変更した:gem 'Rails', '4.2.0'その後、コマンドラインで次のコマンドを実行しました:bundle install。利用可能なジェネレータを確認するには、Rails gまたはRails generate CLIで。

0