前提・実現したいこと
Ruby on Rails を読み、第2章「Toyアプリケーション」を読み進めている途中で、「pg」絡みのエラーに困り、1からやり直しましたが頓挫しています。これを解決して続きを読み進めたいです。
- https://railstutorial.jp/ (Ruby on Rails チュートリアル:実例を使って Rails を学ぼう)
Amazon AWSで、[Create environment]で新しい環境を作りなおしても、内部設定が引き継がれてしまうようです(一旦 rails5.2.0 を導入後だと、新規environmentを作っても、「rails -v」を打つと5.2.0と出てくる)
いっそ、このあたりの設定を完全にリセットしたいとも思いました。
が、方法が分かりませんでした。(Amazon AWSのアカウントを別途取り直すしかないのでしょうか)。
発生している問題・エラーメッセージ
Amazon AWS のCloud9 IDEで進めています。
Rails Tutorial第1章の手順を、rails5.2.0で一通り終えた状態です。
(最新の5.2.0を導入後、5.1.4にダウングレードしたかったのですが、かなり難しいようだったので諦めました。Gemfileの記述など、必要な変更を施しながら読み進めました。)
2章で$ bundle install
(--without production を忘れてしまった)を実行してしまったからか、「pg 0.20.0」絡みのエラーで先に進めなくなりました。(今、エラーメッセージを再度確認するため再現を試みましたが上手くいかず。)
これを回避するため、1から作り直すべく[Create environment]で新規に環境を作り、↓の手順を踏み直しました。
① $ rails new toy_app
② $ cd toy_app
③ Gemfileを以下に書き換え
source 'https://rubygems.org' gem 'rails', '5.2.0' gem 'puma', '3.9.1' gem 'sass-rails', '5.0.6' gem 'uglifier', '3.2.0' gem 'coffee-rails', '4.2.2' gem 'jquery-rails', '4.3.1' gem 'turbolinks', '5.0.1' gem 'jbuilder', '2.7.0' gem 'bootsnap', '1.2.0' group :development, :test do gem 'sqlite3', '1.3.13' gem 'byebug', '9.0.6', platform: :mri end group :development do gem 'web-console', '3.5.1' gem 'listen', '3.1.5' gem 'spring', '2.0.2' gem 'spring-watcher-listen', '2.0.1' end group :production do gem 'pg', '0.20.0' end
④ $ bundle install --without production
⑤ (gitの設定、「helloの追加」、は一旦スキップ)
⑥ $ rails generate scaffold User name:string email:string
ここで以下のエラーが出ます。
/usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/concern.rb:128:in `included': Cannot define multiple 'included' blocks for a Concern (ActiveSupport::Concern::MultipleIncludedBlocks) from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.2.0/lib/action_view/view_paths.rb:7:in `<module:ViewPaths>' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.2.0/lib/action_view/view_paths.rb:4:in `<module:ActionView>' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.2.0/lib/action_view/view_paths.rb:3:in `<main>' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `block in require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:18:in `require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:27:in `require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/actionview-5.2.0/lib/action_view/rendering.rb:3:in `<main>' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `block in require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:18:in `require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:27:in `require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require' from /usr/local/rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:15:in `<module:ApiRendering>' from /usr/local/rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:14:in `<module:ActionController>' from /usr/local/rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:13:in `block in <class:Railtie>' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `instance_exec' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `run' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/railties-5.2.0/lib/rails/initializable.rb:61:in `block in run_initializers' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `call' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/railties-5.2.0/lib/rails/initializable.rb:60:in `run_initializers' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/railties-5.2.0/lib/rails/application.rb:361:in `initialize!' from /home/ec2-user/environment/toy_app/config/environment.rb:5:in `<main>' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `block in require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:18:in `require_with_bootsnap_lfi' from /usr/local/rvm/gems/ruby-2.4.1/gems/bootsnap-1.2.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:27:in `require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency' from /usr/local/rvm/gems/ruby-2.4.1@global/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `run' from /usr/local/rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from -e:1:in `<main>'
該当のソースコード
一応、こちらのリポジトリにtoy_app以下をコピーしておきます。
https://github.com/kinaphar/rails-tutorial-pg-error-debug
試したこと
-
$ bundle update
→ 特にエラーも出ないが、状況変わらず。もう一度$ bundle install --without production
しても変わらず。 -
https://qiita.com/sys_cat/items/16d55e7cd8a3f177863a (GemfileでインストールしたGemを削除する - Qiita)
$ bundle exec gem uninstall gemname
→ 何も表示されず(エラーもログもなく)終わる。
この直後、
$ rails generate scaffold User name:string email:string
と打つと、上に書いたのと同じエラーが出る(もう一度 $ bundle install --without production
してからやっても同じ)。
- https://qiita.com/katoy/items/9bcba54b88c5fc7d9aa6 (gem をクリーンにする。 - Qiita)
$ gem uninstall -I -a -x --user-install --force
をすると色々アンインストールされていく様子がログに出る。
$ gem list
を打つと、けっこう色々な「LOCAL GEMS」が残っている様子(先述のコマンドもう一度打っても「INFO: Uninstalled all gems in 」と出るのでOK?)。
$ bundle install --without production
→成功した様子。
$ rails generate scaffold User name:string email:string
でまた同様のエラーが出る。
補足情報(FW/ツールのバージョンなど)
基本的に、Rails Tutorialに記された手順で、Amazon AWS - Cloud9 IDEで作業しています。railsのバージョンのみ、先述の理由で5.2.0で進めました。
Rails Tutorial 1章は、Gemfileの設定にやや詰まりましたが、そこを解決後、最終的に完走&herokuにデプロイできました。
まだまだ初心者なので、質問内容に不足している情報などあればご指摘下さい。
解決のヒントや、オススメの別の方法(Tutorialを読み進める方法)などあれば、ご教示お願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。