読み物ガイド

「Railsチュートリアル完走後ってどうするの?」
とお悩みの場面で役立つコンテンツ集です。

目次

次のステップを知りたい

本セクションではRailsチュートリアル完走者を対象としたコンテンツをカテゴリ別に紹介しています。より実践的なRuby/Railsのテクニックが学べる『 基本編』や、RSpecを使った本格的なテストに踏み込む『 テスト編』、React・Vue.js・Flutterなどを組み合わせたプロダクト開発に挑戦する『 フロントエンド/モバイル編』、設計の考え方やインフラ・CI/CDなどを押さえたい人のための『 設計/インフラ編』があります。

基本編

基本編では、Ruby/Railsのより実践的なテクニックが学べる次のステップを紹介しています。

テスト編

Railsチュートリアルでは小さくて基本的なテストを紹介しましたが、実際の開発現場ではRSpecテスト自動化サービスなどを使う場面も多いです。テスト編では、より本格的なテストを学びたい人向けのコンテンツを紹介しています。

  • RailsチュートリアルのテストをRSpecで書き換える

    Railsチュートリアルで完成させた「Sample App」のテストを、より高度なテストフレームワーク「RSpec」に置き換えてみるコンテンツです。以下で紹介する「RSpec基礎講座」や「Everyday Rails」などのコンテンツと合わせて読むと、より理解が深まります。
  • RSpec基礎講座

    Railsチュートリアルを完走したレベルの人で、テストフレームワーク「RSpec」を学びたい人向けの資料です。具体的にはRSpecの環境構築やテストの種類、テストデータの追加方法、テスト結果の読み方などが学べます。サンプルコードもあるため、手を動かしながらRSpecを学びたい方にオススメです。(利用事例:DBモデリングとRSpecのワークショップを行いました - ペパボテックブログ
  • 使えるRSpec入門シリーズ

    Railsチュートリアルを完走したレベルの人で、テストフレームワーク「RSpec」を学びたい人向けの資料です。RSpecの各構文や便利機能、使用頻度の高いマッチャー紹介、モックを使ったテストの書き方、Capybaraを使ったブラウザ操作テストなどがなどが学べます。サンプルコードもあるため、手を動かしながらRSpecを学びたい方にオススメです。(利用事例:新卒エンジニアが半年でQiitaを完全に理解する話~バックエンド編~ - Qiita株式会社
  • Everyday Rails - RSpecによるRailsテスト入門

    Railsチュートリアルを完走したレベルの人で、より実践的なテスト技術を学びたい人にオススメな書籍です。Railsチュートリアルでは伝えきれなかった境界値テストやCRUDメソッドのテスト方法など、テストに関する本格的な技術が学べます。いくつかの章は試し読みできます。
  • RSpec スタイルガイド

    上記コンテンツなどを通してRSpecを習得した人で、より可読性の高いテストコードを書きたい人のためのお作法集です。letとlet!の使い分け方や、適度な抽象化、テストデータの取り扱い方などが学べます。すべてのコンテンツがGitHub上で無料公開されています。

フロントエンド/モバイル編

フロントエンド/モバイル編では、ReactVue.jsFlutterなどを組み合わせたプロダクト開発に挑戦したい人向けのコンテンツを紹介しています。

設計/インフラ編

設計/インフラ編では、アイデアから設計に落とし込むまでの考え方や、AWSGitHub Actionsの使い方、継続的インテグレーション(CI)継続的デリバリー(CD)などが学べるコンテンツを紹介しています。

プロダクト開発の全体像を知りたい

本セクションではWeb技術の全体像を見渡せるコンテンツを紹介しています。「まずはWebの全体像を掴んでから次に学ぶ技術を決めたい」といった場面でご活用ください。

  • 学習の流れ - Railsチュートリアル

    Railsチュートリアルで学べるコンテンツを中心に、学習の流れを紹介しています。人気のRailsチュートリアル本編に加え、ローカル開発の基本や、GitHub Pagesを使ったWebサイト制作、JavaScriptのテスト駆動開発などのコンテンツも取り揃えています。
  • RubyとRailsの学習ガイド

    1時間ほどで読める学習ガイドブックです。Webではどんな技術が使われているのか、いま学んでいることはWeb技術全体の中でどのような位置づけなのか、次に学ぶ候補としてどんな技術があるのか。Web技術を学び、レベルアップしていく『冒険の旅』のお供にご活用ください。
  • Progate Journey - 学習の不安を自信に変えよう

    対話的に学べるオンラインのプログラミング学習サービス『Progate』が提供する学習ロードマップです。それぞれの目的に合わせて、より実践的なWeb技術を1つずつ紹介しています。
  • Ruby on Rails Survey

    毎年発刊されているRails開発者の統計データです。2600名以上の回答データを集め、利用しているGemやテストツール、CI/CDサービス、データベース、フロントエンド側のフレームワークなどがランキング形式で載っています。また、一部のセクションには国際的に活躍しているRubyistからのコメントも載っています。
  • Top Ruby Companies

    Ruby/Railsを使っている国内・海外の上場企業Exitしたスタートアップをまとめているページです。RubyやRailsが生み出している市場価値をデータで確認することができます。(関連: アーキテクチャ大調査2022における利用事例

リファレンスを読めるようになりたい

本セクションではRuby/Railsに関するリファレンスや、その読み方が学べるコンテンツを紹介しています。リファレンスを読めるようになって、より早く開発できるようになりたい人にオススメです。

  • Ruby on Railsガイド

    Railsチュートリアル完走者を対象とした、1,600ページ超えのRuby on Rails大型リファレンスです。各機能の詳細がトピック別にまとめられているので、自分のWebサービスを開発するときや、仕事でコードを書く場面などで役立ちます。全文検索やダークモードに対応したProプランや、法人向けTeamプラン、ダウンロード可能な電子書籍版もあります。
  • Ruby on Rails API(英語)

    Ruby on Railsのソースコードを調べるためのリファレンスです。上記Railsガイドで主要な機能のほとんどは解説されていますが、さらに細かな挙動を調べたいときはRuby on Railsのソースコードを読むのが確実です。Rails APIではソースコード内のコメントなどもうまく抽出されているため、具体的な仕様を確認したいときに便利です。
  • プログラミング言語Ruby - リファレンスマニュアル(通称:るりま)

    Rubyの公式リファレンスです。例えばRailsチュートリアルでも正規表現について少しだけ扱いましたが、『るりま』では正規表現で扱えるオプションなどが詳しく書かれています。『るりまサーチ』から検索もできます。
  • Rubyの公式リファレンスが読めるようになる本

    Rubyの公式リファレンスの読み方を解説している本です。『公式リファレンスを見ても変な記号や英語がたくさん出てきて全然意味がわからない・・・』という方に特にオススメの内容となっています。ユースケース別にまとめられているため、『わからない用語を調べたい』『記号の意味を調べたい』などの場面に合わせてご活用いただけます。
  • Rubyist Magazine(通称:るびま)

    日本Rubyの会の有志によって発行されている、無料のWebマガジンです。最新のRuby/Railsに関する技術動向や、全国のRuby/Railsコミュニティの活動などが掲載されています。First Step Rubyでは、Rubyに関するお役立ち情報がまとめられています。
  • TechRacho - エンジニアの「?」を「!」に

    BPS株式会社が運営する、RubyやRailsの最新情報を日本語で紹介するWebメディアです。「週刊Railsウォッチ」ではRuby on Railsに関する最近の動きが定期的にまとめられているので、「Railsの次のバージョンでは何が来るか?」を知りたい人にオススメです。ハッシュタグは「#週刊Railsウォッチ」です。

もう1周して基本知識を定着させたい

本セクションではRailsチュートリアル本編をさらに深く学べるコンテンツを紹介しています。「ローカル開発に挑戦したい」「完走はできたけど理解できた自信がない」と感じている方にオススメです。

上記の他、YouTubeチャンネルnoteマガジンもあります。『Ruby/Rails学習者の統計データ』や『Railsチュートリアルのビジネスモデル』などを公開しているので、ぜひご購読ください!🔔✨

完成した Sample App を拡張しながら学びたい

本セクションでは完走者に好評だった Sample App の拡張課題を紹介しています。いずれも高い難易度となっていますが「Sample App を拡張しながら学びたい」「自分の実力を試してみたい」といった場面でお役に立てば嬉しいです。

  • はじめに

    答えのない課題に挑戦することは、より実践的な知識の獲得にもつながります。そこで本セクションでは、完成したSample Appをさらに拡張させるアイデア(拡張課題)をいくつかご紹介します。それぞれ独立しているので、簡単そうな課題や興味のある課題から取り掛かってみても良いでしょう。ここで試行錯誤した経験は、Railsチュートリアルから巣立って、自分のオリジナルなWebアプリケーションを作るときにも役立つことでしょう。

    しかしいざ実装し始めてみると、全く手が動かなくかもしれません。それも当然です。「新しいことに挑戦する」というのは真っ白なキャンバスに絵を描き始めるようなもので、慣れるまでは気後れしてしまいがちです。そこで、ささやかながら2つほどアドバイスをしてみたいと思います。

    1. 実装していて困ったら、リファレンスを読む習慣を身につけましょう。例えばRailsならRailsガイドRails APIをチェックしてみてください。読み物ガイドにある「 リファレンスを読めるようになりたい」も役立ちます。
    2. できるだけ念入りに検索し、調べたいトピックに関する情報を探してみましょう。google.com から英語で検索したり、英語の記事をDeepL公式Chrome拡張で読むのもオススメです。Webアプリケーションの開発では困難が常につきまといます。世界中から情報を集め、取捨選択し、学びとるスキルが熟練に近づく道です。

    以下の拡張課題はどれも難易度が高いので、ヒントも書いておきました。ただしヒントがあったとしても、これまでの演習の中で最も難易度が高いことには変わりません。相当頑張ったにもかかわらず挫折することも当然あると思いますが、どうか落ち込まないでください。

    時間にも限りがあるため個別サポートはできそうにありませんが、経験者の体験談や実装例などをブログ記事やインタビュー動画などで紹介しています。よければ @RailsTutorialJPnoteマガジンYouTube動画をチェックしてみてください。

    それでは、Good Luck!

  • Ruby/Railsのバージョンを上げてみよう

    RailsチュートリアルのサンプルアプリケーションではGemfileでバージョンを固定しています。これは読者が自力で解決しづらいエラーに遭遇しないようにするための工夫ですが、実際のプロダクト開発ではこまめにアップグレードするのがオススメです。

    例えば最新版にすることでパフォーマンスが大きく改善したり、逆に、サポート対象外となっているバージョンを使い続けることでWebサービスに脆弱性が生まれてしまう恐れもあります。(参考記事: RailsエンジニアのためのWebセキュリティ入門

    Ruby/Railsのコミュニティでは様々な開発が活発に行われていて、皆さんが本書を読んでいる今このときにも、RubyやRailsのエコシステムは更新され続けています。今後のプロダクト開発の実践的な演習として、RubyやRailsのバージョンを上げてみましょう。

    Rubyはバージョン間の互換性が高いためそこまで苦労しないと思いますが、Railsは少々大変かもしれません。Railsガイドに『Railsアップグレードガイド』があるので、この拡張課題に取り組むときはぜひ参考にしてみてください。

  • もう1つのテストフレームワークを使ってみる

    Railsチュートリアルでは「minitest gem」を使ってテストの基本や、テスト駆動開発の流れを押さえました。ただしテストの世界も奥が深く、minitest以外のテストフレームワーク(Testing Framework)もあります。テストの基本が掴めてきたら、別のテストフレームワーク「RSpec」でもSample Appのテストを書いてみましょう(参考:minitestとRSpecの比較動画)。

    RSpecが採用している手法(Behaviour Driven Development)やRubyの高度な文法(ブロック付きメソッドなど)を押さえておくと、RSpecのコードの理解も捗ります。最初はやや難解に見えるかもしれませんが、その分、実戦では大いに役立つツールでもあるので、テストの世界をもう一歩踏み込んでみたい方はぜひチャレンジしてみてください。

    (ヒント:RSpecとminitestは共存できるため、minitestのコード削除は不要です。RSpecに関する情報は上記『次のステップ』をご参照ください)

  • もう1つのページネーションを試してみる

    Sample Appでは「will_paginate gem」を使ってページネーションを実装しましたが、Rubyのエコシステムは十分に大きく、他にも魅力的なgemがあります。ページネーションを実現できるもう1つのライブラリ「kaminari gem」を使って、既存のライブラリ「will_paginate gem」を置き換えてみましょう。

    (ヒント: 同じページネーションでもgem毎に使い方が異なります。まずはそれぞれのREADMEを読み、メソッドの呼び出し方やパラメーターの渡し方などを確認しましょう。その後、gemを置き換え、Sample App内で変更すべき箇所を書き換えてみましょう)

  • 検索機能を実装する

    現在のサンプルアプリケーションには、ユーザーの一覧ページを端から探す、もしくは他のユーザーのフィードを表示する以外に他のユーザーを検索する手段がありません。この点を強化するために、検索機能を実装してください。続いて、マイクロポストを検索する機能も追加してください。(ヒント: まずは「Rails 検索」などで情報収集してみましょう)
  • 返信機能を実装する

    Twitterには、マイクロポスト入力中に@記号に続けてユーザーのログイン名を入力するとそのユーザーに返信できる機能があります。このポストは、宛先のユーザーのフィードと、自分をフォローしているユーザーにのみ表示されます。この返信機能の簡単なバージョンを実装してみましょう。具体的には、@replyは受信者のフィードと送信者のフィードにのみ表示されるようにします。これを実装するには、micropostsテーブルのin_reply_toカラムと、追加のincluding_repliesスコープをMicropostモデルに追加する必要があると思います。スコープの詳細については、RailsガイドのActive Record クエリインターフェイスを参照してください。

    このサンプルアプリケーションではユーザー名が重なり得るので、ユーザー名を一意に表す方法も考えなければならないでしょう。1つの方法は、idと名前を組み合わせて@1-michael-hartlのようにすることです。もう1つの方法は、ユーザー登録の項目に一意のユーザー名を追加し、@replyで使えるようにすることです。

  • メッセージ機能を実装する

    Twitterでは、ダイレクトメッセージを行える機能がサポートされています。この機能をサンプルアプリケーションに実装してみましょう(ヒント: Messageモデルと、新規マイクロポストにマッチする正規表現が必要になるでしょう)。
  • フォロワー通知を実装する

    ユーザーに新しくフォロワーが増えたときにメールで通知する機能を実装してみましょう。続いて、メールでの通知機能をオプションとして選択可能にし、不要な場合は通知をオフにできるようにしてみましょう。メール周りで分からないことがあったら、RailsガイドのAction Mailerの基礎にヒントがないか調べてみましょう。
  • RSS フィードを提供する

    ユーザーごとのマイクロポストをRSSフィードする機能を実装してください。次にステータスフィードをRSSフィードする機能も実装し、余裕があればフィードに認証スキームも追加してアクセスを制限してみてください。
  • REST API を提供する

    多くのWebサイトはAPI(Application Programmer Interface)を公開しており、第三者のアプリケーションからリソースのget/post/put/deleteが行えるようになっています。サンプルアプリケーションにもこのようなREST APIを実装してください。解決のヒントは、respond_toブロックをコントローラーの多くのアクションに追加することです。このブロックはXMLをリクエストされたときに応答します。セキュリティには十分注意してください。認可されたユーザーにのみAPIアクセスを許可する必要があります。
  • 他の拡張機能

    上記の他にも、「いいね機能」「シェア機能」「erbのコードをHamlで書き直す」「エラーメッセージをI18nで日本語化する」「オートコンプリート機能」といったアイデアがありそうです。「こんな拡張を実装してみた」といった例がありましたら @RailsTutorialJP までご連絡ください。


ページ上部に戻る