質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Ruby

    8189questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 5

    2166questions

Rails Tutorial 2章、「concern.rb」に問題がありrails 5.2.0が動作しない

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 384

kinaphar

score 2

 前提・実現したいこと

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を読み進める方法)などあれば、ご教示お願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

(5)でスキップしたhelloの追加と、ルートルーティングの設定を行った上でもう一度試してみるのはどうでしょうか。

あとRailsのバージョンについてはGemfileを
gem 'rails',        '5.1.4'
と書き換えた上で
cd ~/environment/toy_app
で移動して
$ bundle update
$ rails -v
で修正されませんでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Ruby

    8189questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 5

    2166questions