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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

899閲覧

railsでルートURLに行けなくなった時の対処法について

sanyagi_d_1

総合スコア10

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/03/03 10:43

編集2020/03/04 08:06

Railsチュートリアル第2章にて、scaffoldでUserモデルを作成してHerokuにPushしたのですが、http://既存のURL/usersと入力してもアクセスできませんでした。
scaffoldだし後回しにするかと思い、第3章に取り組みましたがここのappの/homeにも行けませんでした。

※第2・3章ともにHerokuにPushするまでは同じですので以下、第3章のみ記入します。

######作業

$ rails 5.1.6 new sample_app

Gemfileの書き足し

source 'https://rubygems.org' gem 'rails', '5.1.6' 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' 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 :test do gem 'rails-controller-testing', '1.0.2' gem 'minitest', '5.10.3' gem 'minitest-reporters', '1.1.14' gem 'guard', '2.13.0' gem 'guard-minitest', '2.4.4' end group :production do gem 'pg', '0.20.0' end # Windows環境ではtzinfo-dataというgemを含める必要があります gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

$ bundle install --without production
$ bundle update
$ git init
$ git add -A
$ git commit -m "メッセージの内容"

次に、コントローラーとルートの設定

  • app/controllers/application_controller.rb

Ruby

1class ApplicationController < ActionController::Base 2 protect_from_forgery with: :exception 3 4 def hello 5 render html: "hello, world!" 6 end 7end
  • config/routes.rb

Ruby

1Rails.application.routes.draw do 2 get 'static_pages/home' 3 get 'static_pages/help' 4 root 'application#hello' 5end

$ rails generate controller StaticPages home help

  • app/controllers/static_pages_controller.rb

Ruby

1class StaticPagesController < ApplicationController 2 def home 3 end 4 5 def help 6 end 7end

(ファイルオープンコマンドで確認済み)

$ git commit -am "メッセージの内容2"
$ git push
$ heroku create
$ git push heroku master
$ rails s
でURLに行きましたが、"Hello,World"は表示されますが、ルートURLにはいけませんでした。

試したこと

1.まずは落ち着いて $ git status
→nothing to commit, working tree clean
2.Herokuサーバーの再起動
こちら(リンク)にあるように、
$ heroku ps
$ curl -v -I https://自分のHerokuURL
$ heroku ps:scale web=0
$ heroku ps
$ heroku ps:scale web=1
$ heroku ps
を実行したが反映されず。。
3.Herokuの作り直し
$ heroku apps
$ heroku destroy (appname)
$ heroku create
$ git push heroku
を実行したが反映されず(リンク)。。


原因も含めて対処方法を教えてもらえると後学のためになるので宜しくお願い致します。

追記

修正依頼で頂いたheroku logs --tailを打ったら

2020-03-03T22:53:53.230551+00:00 app[web.1]: I,[2020-03-03T22:53:53.230278 #4] INFO -- : [730e6aee-90fe-4a7c-91f2-cae91c6d02e6] Started GET "/" for 175.130.222.181 at 2020-03-03 22:53:53 +0000 2020-03-03T22:53:53.243838+00:00 app[web.1]: I, [2020-03-03T22:53:53.243695 #4] INFO -- : [730e6aee-90fe-4a7c-91f2-cae91c6d02e6] Processing by ApplicationController#hello as HTML 2020-03-03T22:53:53.255226+00:00 app[web.1]: I, [2020-03-03T22:53:53.255097 #4] INFO -- : [730e6aee-90fe-4a7c-91f2-cae91c6d02e6] Rendering html template 2020-03-03T22:53:53.255567+00:00 app[web.1]: I, [2020-03-03T22:53:53.255483 #4] INFO -- : [730e6aee-90fe-4a7c-91f2-cae91c6d02e6] Rendered html template (0.0ms) 2020-03-03T22:53:53.257171+00:00 app[web.1]: I, [2020-03-03T22:53:53.257081 #4] INFO -- : [730e6aee-90fe-4a7c-91f2-cae91c6d02e6] Completed 200 OK in 12ms (Views: 1.5ms) 2020-03-03T22:53:53.555613+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=warm-wildwood-90749.herokuapp.com request_id=75611fc8-0e29-4f08-b0e2-7762daedb4e7 fwd="175.130.222.181" dyno=web.1 connect=1ms service=27ms status=304 bytes=48 protocol=https 2020-03-03T22:55:03.333950+00:00 heroku[router]: at=info method=GET path="/static-pages/home" host=warm-wildwood-90749.herokuapp.com request_id=d2d987ac-5a4f-4eb7-99da-8510a1570b14 fwd="175.130.222.181" dyno=web.1 connect=0ms service=4ms status=404 bytes=1902 protocol=https 2020-03-03T22:55:03.332590+00:00 app[web.1]: I, [2020-03-03T22:55:03.332462 #4] INFO -- : [d2d987ac-5a4f-4eb7-99da-8510a1570b14] Started GET "/static-pages/home" for 175.130.222.181 at 2020-03-03 22:55:03 +0000 2020-03-03T22:55:03.334606+00:00 app[web.1]: F, [2020-03-03T22:55:03.334534 #4] FATAL -- : [d2d987ac-5a4f-4eb7-99da-8510a1570b14] 2020-03-03T22:55:03.334707+00:00 app[web.1]: F, [2020-03-03T22:55:03.334643 #4] FATAL -- : [d2d987ac-5a4f-4eb7-99da-8510a1570b14] ActionController::RoutingError (No route matches [GET] "/static-pages/home"): 2020-03-03T22:55:03.334793+00:00 app[web.1]: F, [2020-03-03T22:55:03.334733 #4] FATAL -- : [d2d987ac-5a4f-4eb7-99da-8510a1570b14] 2020-03-03T22:55:03.334918+00:00 app[web.1]: F, [2020-03-03T22:55:03.334838 #4] FATAL -- : [d2d987ac-5a4f-4eb7-99da-8510a1570b14] vendor/bundle/ruby/2.5.0/gems/actionpack-5.1.6/lib/action_dispatch/middleware/debug_exceptions.rb:63:in `call'

のようなコードがあったのですがこれが原因でしょうか?
webページエラーは(404)です。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatsu

2020/03/03 10:50

Pushしたときのログとページにアクセスしたログ(heroku logs --tail で表示)をみたいです。
hatsu

2020/03/03 11:46

ログでは `/static-pages/home` にマッチするルートがありませんと言われています。 トップページなど、ルートがあるページではどんなログが出ますか? エラー周りの複数行載せていただくと答えやすいかもです。
guest

回答2

0

"Hello,World"は表示されますが、ルートURLにはいけませんでした。

現在は root 'application#hello' と書かれているのでこれは正常な処理です。

webページエラーは(404)です。

エラーログでは

2020-03-03T22:55:03.333950+00:00 heroku[router]: at=info method=GET path="/static-pages/home" host=warm-wildwood-90749.herokuapp.com request_id=d2d987ac-5a4f-4eb7-99da-8510a1570b14 fwd="175.130.222.181" dyno=web.1 connect=0ms service=4ms status=404 bytes=1902 protocol=https

と書かれているので /static-pages/homeにアクセスしたときに404になったと思われますが、

原因は以下です。

ActionController::RoutingError (No route matches [GET] "/static-pages/home"):

つまりマッチするパスがありません。

Railsチュートリアルにもありますが、config/routes.rbを

Rails.application.routes.draw do get 'static_pages/home' get 'static_pages/help' root 'application#hello' end

とすると /static-pages/home はいけるようになると思います。
Controllerを正しく作っていればですが。

また以下のようにすることでトップページが 'static_pagesコントローラのhomeアクションが動くようになります。

Rails.application.routes.draw do get 'static_pages/help' root 'static_pages#home' end

投稿2020/03/04 03:03

hatsu

総合スコア1809

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanyagi_d_1

2020/03/04 07:52

routes.rbのhomeとhelpアクションのルート設定とstatic_pages_controller.rbは質問前に作られていたので、この質問板を修正します。
guest

0

自己解決

単純にAWSの操作ミスでrails sとした後、真ん中のPreview→Preview Running Applicationのミニブラウザに表示されるURLから行けました。お騒がせしました。
あとheroku上にdbを作るのを忘れていました。
同じバグで悩んでいる人は、
git push heroku masterした後にheroku run rails db:migrateしてみてください。

投稿2020/03/05 12:01

編集2020/03/06 09:17
sanyagi_d_1

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問