教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
この章ではローカルで開発したWebアプリケーションをHerokuを使って公開します。Herokuを使うことでHerokuのドメインが当てられるため、自分のPC以外からも見ることが可能になります。
実際に作ったサービスを友達に見せて自慢しましょう!
このパートではHerokuを使って、Railsアプリケーションを公開するところまで実装します。
では実際に進めていきましょう。
HerokuとはWebアプリケーションを簡単に全世界に公開できるクラウドプラットフォームです。
参考)HEROKU とは
以下のURLからHerokuのユーザー登録を行います。ユーザー登録は無料です。
登録後、以下のような画面が表示されることを確認してください。
The Heroku CLIをインストールすることで、Herokuのコマンドが使えるようになります。
下記のリンクからOSを指定してダウンロードしてインストールを完了させてください。
https://devcenter.heroku.com/articles/heroku-cli
The Heroku CLIをインストールしたので、ターミナル上でHerokuのコマンドが使えるようになりました。
早速ターミナルからHerokuにログインしましょう。
Herokuへアップロードしたいアプリのディレクトリへ移動し、「heroku loginコマンド」を実行してください。
loginコマンド実行後、herokuに登録したメールアドレスとパスワードの入力が必要です。
Copied!$ cd kanban # kanbanの部分を自分の作ったアプリ名にします
$ heroku login # herokuにログインする
Enter your Heroku credentials:
Email:
メールアドレスとパスワードの入力が完了すると以下のように表示されます。
Copied!Logged in as 入力したメールアドレス
上記の様に表示されていればログイン完了です。
HerokuではPostgreSQLデータベースを使います。
なので、PostgreSQLをインストールしていきます。
以下のコマンドをターミナルで実行してください。(既にインストールされている方はインストールしなくて大丈夫です。)
Copied!$ brew install postgresql
インストールが完了したら、本番 (production) 環境にpg gem
をインストールしてRailsがPostgreSQLと通信できるようにします。
以下のコードをGemfileの最下部に追加してください。
Copied!kanban
└── Gemfile
Gemfile1 Copied!gem 'pg', group: :production # この1行を追加
また、HerokuではSQLiteがサポートされていないため、sqlite3 gem
が本番環境に導入されないようにします。
Gemfileのsqlite3
の箇所を以下のように編集してください。
Copied!kanban
└── Gemfile
Gemfile1 Copied!gem 'sqlite3', '~>1.4', group: :development # group: :developmentの記述を追加
group: :development
はdevelopment環境でインストールするという意味になります。
pg gem
は本番用のgemでローカル環境にはインストールしないようにします。その場合、bundle install
に--without production
を追加します。このフラグを追加することで、pg gem
はローカル環境には反映されないようになります。それでは以下のコマンドを実行してください。
Copied!$ bundle install --without production
次に「heroku create アプリ名」コマンドでheroku上にアプリケーションを作成します。
以下のコマンドを実行してください。
Copied!$ heroku create
上記のコマンドを実行すると、以下のような結果が表示されます。
Copied!Creating app... done, ⬢ kanban
https://kanban.herokuapp.com/ | https://git.heroku.com/kanban.git
https://~~.herokuapp.com/
が上記のコマンドで作成されたサブドメインです。
この時点でブラウザに表示可能ですが、今はまだ何もありません。デプロイしてWebページを表示させましょう。
RailsアプリケーションをHerokuにデプロイするには、まずGitを使ってHerokuにリポジトリをプッシュします。
Copied!$ git add .
$ git commit -m "initial commit"
$ git push heroku master
上手く行くと、下記のようにremote: Verifying deploy... done.
と表示されます。
Copied!.
.
.
remote: Verifying deploy... done.
To https://git.heroku.com/.git
* [new branch] master -> master
gitをまだインストールしていないもしくは、理解出来ていないという方は以下サイトがおすすめです。
参考)サルでもわかるGit入門
次に以下コマンドでmigrationを実行します。ローカル環境で行なっていたrails db:migrate
のコマンドを本番環境でも行うというイメージです。
Copied!$ heroku run rails db:migrate
上記のコマンドを実行したら、以下のコマンドを実行してWebページを表示させましょう。
Copied!$ heroku open
下記の画像のように、サインインページが表示されれば、うまく動作しています。
以上で本教材は終了です。
Railsを使って、どのようにWebアプリケーションを作っていくか大まかな流れは把握できたかと思います。
よりRailsを理解するには本教材をもう1回進めたり、今回作成したアプリケーションをアレンジしてみましょう。アレンジするにはもともと書いてあるコードを理解しないとできないことなので、コードを書き換えることでより理解が深まります。また、アレンジするだけでなく、追加機能を実装するのもおすすめです。
お疲れさまでした!
The Heroku CLIをインストールしたところエラーが発生した。
(ドラッグ & ドロップで添付できます)
Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
Please create a new installation in /opt/homebrew using one of the
"Alternative Installs" from:
https://docs.brew.sh/Installation
You can migrate your previously installed formula list with:
brew bundle dump
このようなエラーでした。
問題に対して試したことを記載してください。
Rails 6.1・Mac OS
git push heroku master
コマンドでHeorkuにpushしてもデプロイできない。
エラーログに、ActionController::RoutingError (No route matches [GET] "/"):
と出ていたので
上記、2点を確認後、
再度、git push heroku master
コマンドをしましたが状況は変わりませんでした。
お忙しいとは思いますが、ご対応宜しくおねがいします。
Rails 6・Mac OS big sur11.3
はじめまして
エラーの詳細と解決法がわかりませんでした
解決方法を教えていただけますでしょうか
git push heroku masterが失敗する
Failed to install gems via Bundler.と表示されます
問題に対して試したことを記載してください。
Rails 5.1・Mac OS
初めまして!
内容が丁寧で、とても分かりやすく、初心者なので本当に勉強になりました!
こちらの教材を参考にして(アレンジして)、オリジナルのコンセプトのアプリを作り、デプロイさせて頂きたいのですが、大丈夫なのでしょうか?
(ポートフォリオにしたいです)
お忙しいかとは思いますが、ご返信頂けたら幸いです!
お世話になっております。
<3. Herokuにデプロイ>のgit push heroku masterを実行した際に下記のエラーが発生致しました。
error: src refspec master does not match any
error: failed to push some refs to 'https://git.heroku.com/aqueous-hamlet-19256.git'
エラー文を検索したところ、内容が不一致部分があるとの事ですので、変更中のファイルを確認致しました。
お忙しいところ恐れ入りますが、ご確認頂けますと幸いです。