Ruby on Rails チュートリアル
ヘルプ − 困ったときのヒント集
本ページではRailsチュートリアルでよく見かけるエラーや対処法、迷ったときの学習ロードマップなどをまとめています。Railsチュートリアルを進めていて困ったときにご活用ください。
目次
- はじめに
- 学習ロードマップ
- GitHubでSSH鍵を使って認証する
- Visual Studio Code と Docker を使ってローカル環境で開発する
- AWS Cloud9 の容量不足を解決する
- AWS Cloud9 が動かなくなったら
- GitHub Codespacesで開発する
- デプロイ先を変更する
- 公式情報まとめ
- 公式動画:Railsチュートリアルの歩き方
- 公式リポジトリ:yasslab/sample_apps
- 公式アカウント
- 完走者向け読み物ガイド
はじめに
Web技術は日々進化しているため、エラーに遭遇せずに開発を進められることは稀です。すべてのエラーを網羅するのは難しいですが、エラー発生時に役立つ(かもしれない)ヒントを以下にまとめておきました。困ったときはぜひお試しください。
- Sample App 実装例のコードと自分のコードを比較しましたか?
- チュートリアルで使用した gem のバージョン(Rails を含む)を正確に使用していますか?
- エラーメッセージで検索してみましたか?
- RailsのWebサーバを(
Ctrl-C
で)停止して再起動しましたか? bin/spring stop
を使ってSpringを停止してみましたか?bundle install
を再実行しましたか?bundle update
を実行してみましたか?heroku logs
やheroku logs --tail
を使って Heroku のログを調べましたか?sqlite3
gem がGemfile
の開発環境とテスト環境にのみリストされていることを確認しましたか?- エラーメッセージで検索してみましたか?(大事なことなので2回書きました)
上記ヒントが皆さんのお役に立てば解決すれば嬉しいです。『デバッグ時間をもっと短くしたい』『より早く学びたい』といった場合は、次の学習ロードマップをご参照していただけると幸いです。
学習ロードマップ
よくある学習の流れをまとめたロードマップもあります。『この流れが正解』といったものはありませんが、自分に合った学習計画を立てる場面などでご活用ください。

☝️ 図中に記載されている各種サービスの概要は、次の通りです。
Progate
対話的に学べるオンラインのプログラミング学習サービスです。初心者向けのコンテンツが特に充実しており、初めてプログラミングをする方にオススメです。『Progate Journey』でプログラミング学習の全体像を把握することもできます。Railsチュートリアル実践入門シリーズ
Railsチュートリアルを進めて『難しい!』と感じた方を対象とした補足コンテンツです。『基礎力を高めたい』『まずは基本を押さえたい』という方にオススメです。RailsチュートリアルWebテキスト
WebpackやGitHubにも対応した最新のコンテンツです。『理解がうまく進まない』『もっと早く学びたい』といった場合は、スライドと実演動画で学べるRailsチュートリアル解説動画がオススメです。Railsチュートリアル解説動画 + トレーニング
イラストと実演で効率的に学べる解説動画で、すばやく復習したい人にオススメです。2022年から回答付き問題集「トレーニング」も同梱され、70問以上の問題を通して各章の理解度もチェックできます。「コードは動いたけど理解できたか不安」という人に特にオススメです。質問対応サポート付き解説動画【提供: ShareWis】
現役Rubyエンジニアのサポート付きで学べる、解説動画の質問対応付きサービスです。後半の章ほど難しくなっていきますが、サポートを受けながらしっかり学ぶことができます。コミュニティサポート付き解説動画【提供: TechCommit】
コミュニティ型の学習支援サービスです。独学での学習が不安な方にオススメです。(【Railsチュートリアルコラボ】Rails学習支援追加パックでお申し込みください。)Ruby on Railsガイド
トピック毎に体系化された、1,600ページを超えるRailsの大型リファレンスです。Railsチュートリアルを完走し、プロダクト開発の実践に入った方々を対象として、各機能の詳しい使い方を解説する辞書型サービスです。『もっと生産的に開発したい』という方向けにProプランやTeamプラン、電子書籍版も提供しています。読み物ガイド
Railsチュートリアル完走者を対象とした『読み物ガイド』も用意しています。『完走後ってどうしたらいいの?』とお悩みの場面でお役に立てば嬉しいです 😌💖
上記の他、YouTubeチャンネルやnoteマガジンもあります。『Ruby/Rails学習者の統計データ』や『3ヶ月でWebサービスを開発した話』、『医者からエンジニアになった話』などを公開しているので、ぜひご購読ください!📺✅
GitHubにSSH鍵を使って接続する
GitHubにSSH鍵を使って接続する方法です。GitHubアカウントがない場合は、初めにアカウントを作成します。
1. SSH鍵の登録方法
-
公開鍵をクリップボードにコピーします。既に公開鍵を作成している場合は、catコマンドを使って公開鍵を表示できます。
$ cat ~/.ssh/id_rsa.pub
- 公開鍵を追加するには、GitHubで右上にあるプロフィール画像をクリックしドロップダウンメニューから「Settings」をクリック、次に左サイドバーから「SSH and GPG keys」をクリックします。
-
右上の「New SSH key」をクリックして、表示されたページで任意の鍵の名前を入力し、catコマンドで出力した公開鍵をコピー&ペーストします。
-
最後に「Add SSH key」をクリックするとページが移動し、追加した公開鍵を確認できます。
2. GitHubをリモートoriginに追加する方法
GitHubでリポジトリを作成した後に表示される画面では、「SSHオプション」を選択してコマンドを表示させてください。

ターミナルで下記のコマンドを実行し、GitHubをリモートoriginに追加します
$ git remote add origin git@github.com:<あなたのGitHubアカウント名>/hello_app.git
参考記事
Visual Studio Code と Docker を使って開発する
Visual Studio Code と Docker を使って、ローカル環境に開発環境を用意する方法です。環境構築が完了すると、1.2 さっそく動かすのセクションを読み飛ばすことができます。なお本開発環境の構築には、@saboyutaka さんが制作したdevcontainer for Rails Tutorial 7を利用しています(ご提供ありがとうございます! 💖)。
具体的な手順は次の通りです。
必要なものをインストールする
- Docker Desktop for Windows/Mac.からDockerをインストールします。詳しくはこちらから。
- Visual Studio Codeをインストールします。
- Remote Development extension packというVScodeの拡張をインストールすることで、VScode内でDockerを起動することができます。
- GitHubのアカウントをお持ちでない場合は、1.4.3を参考にアカウントを作成しておきましょう。
devcontainerの起動する
- 自分のアカウントにdevcontainer for Rails Tutorial 7と同じ内容のリポジトリを作成します。devcontainer for Rails Tutorial 7にある「Use this template」をクリックするとリポジトリを作成するページが表示されます。「Repository name」に任意のリポジトリ名を入力して「Private」オプションを選択し、最後に「Create repository from template」をクリックしてください。
- 作成したリポジトリを
git clone
を使い、ローカル環境にダウンロードします。以下のコードをターミナルで実行すると、作成したリポジトリがダウンロードされます。$ git clone https://github.com/<あなたのGitHubアカウント名>/<設定したリポジトリ名>.git
上記の方法で失敗する方は、作成したリポジトリからZIPでダウンロードすることもできます。
- VSCodeを起動し、ダウンロードしたリポジトリを開きます。
- 左下のボタンをクリックし、メニューを開きます。
- Reopen in Container を実行します。繋がらない場合はDockerが起動しているか確認してみましょう。
- 右上のボタンからTerminalを開きます。
- コマンドを実行し完了になります。リスト 1.5まで完了している状態です。お疲れ様でした。
また、devcontainer を起動した後に、rails new
で作成したディレクトリを「ファイル」の「開く」から選択するとプロジェクトの表示を切り替えられます。
参考
- 第6版開発環境用: devcontainer for Rails Tutorial 6
AWS Cloud9 の容量不足を解決する
Cloud9 で開発していると、デフォルトで設定されている Amazon EBS ボリューム容量では足りなくなってしまうことがあります。本セクションでは、使わなくなったファイルの削除方法や EBS ボリュームを増やす方法を紹介します。(Amazon EBS の無料利用枠については公式ページからご確認ください。)
0. 第3章に入ったら hello_app
, toy_app
は削除しよう
sample_app
だけを使います。第1章で作った hello_app
と、第2章で作った toy_app
は削除しても大丈夫です。容量不足が不安になってきたら、まずは hello_app
と toy_app
を削除してみましょう。(ソースコードを残しておきたい方は、事前に GitHub に push しておきましょう)

1. EBS ボリュームの確認方法
df -h
コマンドで、現在の容量を確認します。 /dev/xvda1
の列の Use
が100%になると、動作しなくなることもあります。(動作しなくなってしまった場合は、新しい environment を作成した方が早いかもしれません。)
$ df -h Filesystem Size Used Avail Use% Mounted on . . /dev/xvda1 9.8G 8.2G 1.5G 85% /
There was an error while trying to write to `/home/ubuntu/environment/sample_app/.bundle/config`. There was insufficient space remaining on the device.
hello_app
やtoy_app
を削除しても構わない方は、この時点で削除して容量を少し空けておきましょう。
2. EBS ボリュームを増やす方法
- Amazon EC2 コンソールを開きます。
- 「ボリューム」を選択し、変更するボリュームを選択します。(複数あって分からない場合は、「インスタンス」の「実行中のインスタンス」の中から
aws-cloud9
から始まる Name のインスタンス ID をコピーし、ボリューム内で検索するとよいでしょう。) - 上部にある「アクション」ボタンから「ボリュームの変更」を選択し、サイズを AWS が定める最大無料枠に設定し、変更します。(執筆時点では
30
でしたが、念のため確認しておくことをオススメします) - 「インスタンス」にいき、該当のインスタンスを選択後、画面上部にある「アクション」ボタンから「インスタンスの状態」→「再起動(停止中なら開始)」をします。
- 「Cloud9」に戻り、ターミナルからボリュームの拡張をします。現在のインスタンスに割り当てられているブロックデバイスの情報を確認するには、
lsblk
コマンドで表示します。ルートボリュームである/dev/xvda
は拡張されていますが、/dev/xvda1
はまだ元のままです。$ lsblk . . xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 8G 0 part
$ sudo growpart /dev/xvda 1
$ lsblk . . xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 30G 0 part /
- 最後にファイルシステムを拡張します。ファイルシステムを拡張するには、以下のコマンドを使います。
$ sudo resize2fs /dev/xvda1
$ df -h Filesystem Size Used Avail Use% Mounted on . . /dev/xvda1 30G 8.2G 21G 27% /
参考記事
AWS Cloud9 が動かなくなったら
Cloud9 がうまく動かない原因にはさまざまな理由が考えられますが、上部にオレンジの帯で「This is taking longer than expected.」から始まるメッセージが表示されている場合は、インスタンスの再起動を行ってみましょう。
インスタンスの再起動
- Amazon EC2 コンソール を開き、左側のナビゲーションバーから「インスタンス」を選択します(この時、上部のメニューで作成した Cloud9 と同じリージョンが表示されているか確認し、リージョンが違う場合はドロップダウンメニューから選択しておきます)。
-
再起動したいインスタンスにチェックを入れ、「インスタンスの状態」メニューから「インスタンスを再起動」をクリックします。
- 確認画面が表示されるので、右下の「再起動」をクリックすると、再起動が実行されます。
また、同時に複数のインスタンスを使用している場合、現在使用しているインスタンス以外を停止してみましょう。
参考記事
GitHub Codespacesで開発する
GitHub Codespacesはブラウザ上で開発できるサービスで、無料のプランでも月60時間まで使えます。本セクションではGitHub公式のRailsテンプレートを、Railsチュートリアル用にカスタマイズしたものを使用します。
Railsチュートリアルの第1章・第2章・第3章の冒頭にあるrails new
およびGemfile
の更新まで(難しいとされる「環境構築」まで)が完了している状態となっておりrails server
が立ち上げられる状態から学習をスタートできます。
GitHubアカウントが必要なので、お持ちでない場合は1.4.3を参考にアカウントを作成しておきましょう。( Google ChromeなどのChromiumベースのブラウザーを使うことをおすすめします。)
使い方
-
Codespacesのページに行き、画面右の「New codespace」ボタンをクリックします。
-
「Select a repository」をクリックし、
yasslab/codespaces-railstutorial
と入力します。(他の項目は自動で補完されます) -
以下の画面になったら、右下の「Create codespace」ボタンを押します。
-
環境構築が完了するのを待ちます。(以下の画面が切り替わった後もCodespacesのサーバーが立ち上がるまで1〜2分ほど掛かります)
-
Railsチュートリアルのロゴ画像が表示されたら完成です。
rails new
やGemfile
の更新、rails server
を立ち上がるところまで完了している状態なので、第1章・第2章・第3章のコードを書くところから始められます。
参考
デプロイ先を変更する
本文で紹介している以外にも、さまざまなプラットホームでRailsアプリケーションをデプロイ出来ます。本セクションは、本文とは異なるプラットホームでCloud9からデプロイする方法を紹介します。
fly.io にデプロイする
fyl.ioは、コマンドラインインターフェースで操作を行いたい場合におすすめです。クレジットカード情報を登録すると最大3つのアプリと合計3GBまでのデータベースを無料で利用できます。(初回のデータベース作成はカード情報を登録しなくても行えます。詳しくは公式ページからご確認ください。)
-
Cloud9で
fly
コマンドを使えるようにするため、ターミナルで下記のコマンドを実行してflyctl
のインストールと設定を行います。以降、コマンドの実行はすべてターミナルで行います。$ curl -L https://fly.io/install.sh | sh $ echo 'FLYCTL_INSTALL="/home/ubuntu/.fly"' >> $HOME/.bash_profile $ echo 'PATH="$FLYCTL_INSTALL/bin:$PATH"' >> $HOME/.bash_profile $ source $HOME/.bash_profile > /dev/null $ flyctl version # 表示されるバージョンは異なる場合があります flyctl v0.0.425 linux/amd64 Commit: a1d61bdc BuildDate: 2022-10-29T21:08:47Z
-
flyctl auth login
を実行してターミナルに表示されたURLクリックすると、アカウントを持っていない場合サインインページが表示されます。GitHubアカウントかEmailで登録しましょう。続いてクレジットカードの登録画面が表示されます。クレジットカードの登録は後から行うことも可能ですが、2回目以降のデータベースの作成には登録が必要なので、ここで登録しておくと良いでしょう。 -
最初のデプロイを行う前に、まずアプリケーションの作成を行います。
fly launch
を実行するとターミナル上にさまざまな質問が表示されるので答えていきます。# 空白のままEnter ? Choose an app name (leave blank to generate one): # 矢印でカーソルを移動させ Tokyo を選択して Enter ? Choose a region for deployment: [Use arrows to move, type to filter] # y(yes)を打って Enter ? Would you like to set up a Postgresql database now? (y/N) # 一番上の「Development - Single node(無料プラン)」 が選択されている状態で Enter ? Select configuration: [Use arrows to move, type to filter]
全て答えるとアプリの作成が始まります。ローカルのフォルダに
.dockerignore
、Dockerfile
、fly.toml
、lib/tasks/fly.rake
が作成され、ターミナルにNow: run 'fly deploy' to deploy your Rails app.
と表示されたら成功です。作成されたファイルはコミットしてプッシュしておきましょう。 - 準備ができたら
fly deploy
でデプロイを実行します。成功すると下記のようなメッセージが表示されます。失敗した場合はfly logs
でログを確認し、原因を探してみましょう。Release v1 created ==> Monitoring deployment 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing] --> v1 deployed successfully
-
デプロイされたアプリケーションを開くには
fly open
を実行します。cloud9では自動でブラウザを開けないため「Error」の表示がでますが、URLをクリックすればブラウザが開いてアプリケーションが表示されます。
参考記事
公式情報まとめ
Railsチュートリアルに関する公式動画・公式アカウントなどをまとめてみました。最新情報を知りたい場面などでお役立てください。
公式動画:Railsチュートリアルの歩き方
Railsチュートリアルの全体像を俯瞰したいときや、完走後のイメージを掴みたい場面でご活用ください。
公式リポジトリ:yasslab/sample_apps
GitHub 上で公開しているRailsチュートリアルの実装例です。Railsのバージョン毎にそれぞれディレクトリが分けられているので、学習中のバージョンに合わせて適宜ご参照ください。
公式アカウント
完走者向け読み物ガイド
Railsチュートリアル完走者を対象とした『読み物ガイド』も用意しています。『完走後ってどうしたらいいの?』とお悩みの場面でご活用ください 🗺✨
読み物ガイドをみる
Railsチュートリアルは YassLab 社によって運営されています。
コンテンツを継続的に提供するため、書籍・動画・質問対応サービスなどもご検討していただけると嬉しいです。
研修支援や教材連携にも対応しています。note マガジンや YouTube チャンネルも始めたので、よければぜひ遊びに来てください!