Railsチュートリアル - ヘルプ

Railsチュートリアルのヘルプページへようこそ!

本ページではRailsチュートリアルでよく見かけるエラーや、その対処法などをまとめています。Railsチュートリアルを進めていた困った場面などでお役に立てば嬉しいです。

まず始めに

Web サービスなどのプロダクト開発は難しく、どれだけ細心の注意を払っていてもトラブルに遭遇する可能性があります。そういった場面では、まず手元の Sample App のコードと動作確認済みの実装例とを比較し、どこに違いがあるのか確認することをオススメします。

また、デバッグ時のヒントも下記にまとめておいたので、適宜ご参照していただけると嬉しいです。

デバッグのヒント

すべてのエラーを事前に予測することはできませんが、エラー発生時の役に立つかもしれないヒントを以下に紹介します。思い当たる場面などあればぜひ試してみてください

  • Sample App 実装例のコードと自分のコードを比較しましたか?
  • チュートリアルで使用した gem のバージョン(Rails を含む)を正確に使用していますか?
  • エラーメッセージをググってみましたか?
  • RailsのWebサーバを(Ctrl-Cで)停止して再起動しましたか?
  • bin/spring stopを使ってSpringを停止してみましたか?
  • 本のコードをコピー&ペーストしてみましたか?(経験上、コードを手入力することは、一般的にはより優れた学習手法ですが、エラーが発生しやすいため、疑わしい場合はすべてのコードを正確にコピーしてください。)
  • bundle installを再実行しましたか?
  • bundle updateを実行してみましたか?
  • heroku logsheroku logs --tailを使って Heroku のログを調べましたか?
  • sqlite3gem がGemfileの開発環境とテスト環境にのみリストされていることを確認しましたか?
  • 再び、エラーメッセージをググってみましたか?

上記ヒントで皆さんのエラーが解決すれば嬉しいです。もし『デバッグ時間を短縮したい』『もっと効率よく学びたい』といった場面があれば下記の学習ロードマップをご参照していただけると幸いです。

AWS Cloud9 の容量不足を解決する

Cloud9 で開発していると、デフォルトで設定されている Amazon EBS ボリューム容量では足らなくなってしまうことがあります。本セクションでは、EBS ボリュームを増やす方法を紹介します。(Amazon EBS の無料利用枠については公式ページからご確認ください。)

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_apptoy_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% /
            
参考記事

公式情報まとめ

Railsチュートリアルに関する公式動画・公式アカウントなどをまとめてみました。最新情報を知りたい場面などでお役立てください。

公式動画:Railsチュートリアルの歩き方

Railsチュートリアルの全体像を俯瞰したいときや、完走後のイメージを掴みたい場面でご活用ください。

公式リポジトリ:yasslab/sample_apps

GitHub 上で公開しているRailsチュートリアルの実装例です。Railsのバージョン毎にそれぞれディレクトリが分けられているので、学習中のバージョンに合わせて適宜ご参照ください。

公式アカウント

学習ロードマップ

『Railsチュートリアル前後の学習ロードマップが欲しい』といった声にお応えして作成いたしました。それぞれに適した学び方があるため『この進め方が正解』といったものはありませんが、1つの事例としてご参考になれば嬉しいです。

☝️ 図中に記載されている各種サービスの概要は、次の通りです。

  • Progate

    対話的に学べるオンラインのプログラミング学習コースです。初心者向けのコンテンツが特に充実しており、HTMLやCSS、JavaScript、Ruby、GitなどのWebの基本知識を学ぶには打って付けです。「Webの基礎的な知識を学んだ方が良さそう」と感じた場合にオススメです。
  • 前提知識シリーズ『開発基礎編』

    Railsチュートリアルを進める前の基礎学習に最適なシリーズです。「基礎的な知識がもっと必要」「苦手だと感じる部分を集中的に学びたい」という方にオススメです。
  • RailsチュートリアルWebテキスト

    Railsチュートリアル第6版 (Rails 6.0対応) のWebテキストです。Webpack に対応したフロントエンドのセットアップ、GitHub 対応のバージョン管理、Active Storage や form_with などのにも対応した最新のWebテキストです。
  • Railsチュートリアル解説動画

    実演付きの解説動画(計38時間)を視聴しながら学ぶことができます。分からない部分があれば、理解できるまで何度も繰り返し見ることができるので、自分のペースで効率よく学習したい方に最適です。30分間のお試し視聴プランもあります。(ハッシュタグ『#Railsチュートリアル解説動画』)
  • TechCommit

    コミュニティ型の学習支援サービスです。独学での学習が不安な方にオススメです。(【Railsチュートリアルコラボ】Rails学習支援追加パックで解説動画もご覧いただけます。)
  • ShareWis

    現役Rubyエンジニアのサポート付きで学べる、解説動画の質問対応サービスです。Railsチュートリアルでは章を進めるにつれて徐々に難しくなっていきますが、オンラインの動画と質問を駆使しながら学ぶことができます。途中で挫折しそうになったときにオススメです。
  • RUNTEQ

    Railsチュートリアル解説動画も利用できるWebエンジニア養成スクールです。企業が求める実務レベルの技術習得に注力していて、国際化対応Ajax 対応などの基礎が学べるカリキュラムや、Polymorphic の関連付けAPI との繋ぎ込みが学べるカリキュラムなども用意されています。オンライン説明会も随時実施されているので、興味あれば公式ページへ。
  • POTEPAN CAMP

    Railsチュートリアル解説動画も利用できる渋谷のプログラミングスクールです。初学者向けの基礎カリキュラムが学べるオープンクラスコース(2ヶ月15万円)から、同スクール経由で転職が決まれば全額キャッシュバックに対応している選抜クラスコースまであるので、レベルに合わせてご利用いただければと思います。
  • Railsガイド

    トピック毎に体系化された、1,600ページを超えるRailsの公式ガイドです。現役のRailsエンジニアが参照する中〜上級者向けドキュメントで、英語版を『Rails Guides』、日本語版を『Railsガイド』と呼びます。

    『Railsガイドをガッツリと活用したい』という方向けにProプランTeamプラン電子書籍版も提供しています。

読み物ガイド

最後の章にあるセクション『読み物ガイド』から、いくつかの項目を本ページにも転記しました。『Railsチュートリアル完走後、どうしたら?』とお悩みの場面がありましたらご参照していただけると嬉しいです。

  • ドットインストール

    3分動画でマスターする、初心者向けのプログラミング学習サイトです。様々なプログラミング言語やツールの概念と使い方を日本語の動画を通して学ぶことができます。RubyやRailsだけでなく、jQueryやCSSなど多くのトピックをカバーしているので、RailsでWebアプリケーションを開発する際に必要な関連技術を効率的に学習することができます。
  • Rubyist Magazine(通称「るびま」)

    日本Rubyの会の有志によって発行されている、無料のWebマガジンです。最新のRuby/Railsに関する技術動向や、全国のRuby/Railsコミュニティの活動などが掲載されています。分野別の目次があるので、まずは興味のある記事から読んでみると面白いかもしれません。
  • 現場で使える Ruby on Rails 速習実践ガイド

    Railsチュートリアルではminitestやerbなど、Railsのデフォルトの機能を使ってSNSを開発しましたが、実際の現場ではより多様なgemを駆使して開発が進みます。本書ではRSpecやSlimなど、Railsチュートリアルでは紹介しきれなかった様々なgemや、現場で役立つ実践的な考え方に触れることができます。(Kindle版 / 書籍版
  • パーフェクトRuby on Rails

    Railsチュートリアルでプロダクト開発の基本を学びましたが、他にも非同期実行やリアルタイム通信、OAuthを使ったログインやフロントエンドと組み合わせた開発手法などがあり、奥も深いです。さらに本格的なプロダクト開発を学びたい場面でぜひ!(Kindle版 / 書籍版

  • プロを目指す人のためのRuby入門 - 言語仕様からテスト駆動開発・デバッグ技法まで

    Rubyにおけるリファクタリングの要点やテスト駆動開発、デバッグのやり方など、開発現場で必要になる知識を解説しています。Railsチュートリアルでは必要最低限のRubyの知識を学びましたが、さらに1歩進んで、プロとして通用するRubyのコードを書きたい方にオススメです。(Kindle版 / 書籍版

  • Everyday Rails - RSpecによるRailsテスト入門

    Railsチュートリアルなどを読んで、RailsによるWebアプリケーション開発やテスト駆動開発を理解した方を対象に書かれた有料の書籍です。Railsチュートリアルでは伝えきれなかった境界値テストやCRUDメソッドのテスト方法など、テストに関する詳細な技術が学べるので、「テストの技術についてもっと具体的に学びたい」という方にオススメです。なお、いくつかの章は無料で読むことができるので、まずはザッと目を通してみることをオススメします。

他にも、@zyunnosuke さんの記事「Ruby on Railsを仕事にしていくための第一歩」では、より細かな次のステップがまとまっています。「Railsチュートリアルを読み終わった後はどうすれば良い?」とお悩みは、是非ご参考にしてみてください。

上記の他、Railsチュートリアル運営チームに伝えたいことや、『Railsチュートリアルを参考にこんなサービス作ったよ!』といったご報告などありましたら、@RailsTutorialJP までお気軽にご連絡していただけると嬉しいです 😌💖