読み物ガイド

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

目次

次のステップを知りたい

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

基本編

基本編では、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上で無料公開されています。

設計/インフラ編

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

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

フロントエンド/モバイル編では、2021年にリリースされた新しい取り組み『Hotwire』から、従来のReactVue.js、またモバイル向けのFlutterと組み合わせたプロダクト開発に挑戦したい人向けのコンテンツを紹介しています。

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

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

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

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

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

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

    よく使われている Ruby のライブラリ (gem) をまとめたWebサイトです。カテゴリから gem を探したり、検索して gem を探せます ("http" の検索結果例)。本サイトは、Webサービスのパフォーマンス管理サービス (APM: Application Performance Management)を運営している AppSignal 社によって継続的にメンテナンスされ、本サイトのソースコード (Rails) も GitHub 上から公開されています。
  • Awesome Ruby

    よく使われている Ruby のライブラリ (gem) をまとめている GitHub リポジトリです。Devise などの認証系 (Authentication and OAuth) から RSpec などのテスト系 (Testing) まで、100 以上の幅広いカテゴリから便利なライブラリを探せます。また掲載基準には「3万回以上のダウンロード」「活発なメンテナンス」などがあり、実績のある gem を探したい場面などで特に便利です。
  • 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プランや、法人向け協賛プラン、ダウンロード可能な電子書籍版もあります。
  • 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に関するお役立ち情報がまとめられています。
  • Ruby Weekly(英語)

    世界中のRubyの動向をまとめ、メールでお知らせしてくれる無料の週刊ニュースレターです。購読すると、登録したメールアドレスに毎週1回のペースでメールが届きます。直近のニュースは https://rubyweekly.com/latest から読むことができます。最新情報を知っておきたい人に特にオススメです。
  • TechRacho|BPS株式会社のRuby on Rails開発情報サイト

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

コミュニティに参加して仲間を見つけたい

本セクションではRuby関連のコミュニティや、Ruby関係者が立ち上げたコミュニティを紹介しています。一緒に学ぶ仲間を見つけたり、よく使うライブラリの作者と出会うキッカケなどになれば幸いです。

  • ruby-jp

    Rubyプログラマー同士の交流を目的としたSlackワークスペースです。世代や企業の垣根を超えて、技術者同士が交流できる場として多くのRubyistが集まっています。初心者歓迎で質問・相談・情報交換なども活発に行われているので、コミュニティ参加の入り口としてぜひ!(公式Webサイトを見る
  • 地域.rb

    全国各地にあるRubyコミュニティです。2023年から再始動したコミュニティが続々と増えてきています。最寄りの地域でまだ現地開催が行われていない場合でも、上記のオンラインコミュニティ「ruby-jp」でRubyコミュニティと繋がれます。
  • Hotwire.love

    Hotwire(TurboやStimulus)に関する話題をカジュアルに語り合う技術コミュニティです。Hotwireの学び方やハマりどころ、実装方法や最新情報などについて参加者同士で語り合える場です。オンラインで定期的に開催されていて、これから始めようと思っている人も経験者も幅広く歓迎しています。(ハッシュタグ: #hotwirelove)
  • OSS Gate

    プログラミング言語Ruby 'を' 開発している @kou さん達が立ち上げた、OSS(Open Source Software)開発に参加する「入り口」を提供する取り組みです。OSS開発に未参加の人を参加する人へ、少し参加したことがある人を継続的に参加する人へ。そうやってOSS開発に参加する人を継続的に増やす取り組みとなっているため、ライブラリなどの開発に「挑戦したい」「貢献したい」といった方にオススメです。スライド資料『OSS入門としてのRailsガイド』ではOSS開発を具体例と共に解説しています。詳細は公式Webサイトから!
  • RubyWorld Conference

    島根県や松江市などの協力を得て開催されているビジネスカンファレンスです。Rubyのさらなる普及・発展とビジネス利用の促進を目指し、技術動向や開発事例、教育現場などの情報を発信しています。ハッシュタグ『#rubyworld』から最近の様子を確認したり、YouTubeチャンネルから過去の発表の一部を視聴できます。参加者目線で見るレポートの動画もあります。
  • RubyKaigi

    世界中のRubyistが集まる年1回の国際カンファレンスです。例えば2022年は三重2023年は長野で開催され、2024年は沖縄で開催となっています。ハッシュタグ『#rubykaigi』から最近の様子を確認したり、YouTubeチャンネル『RubyKaigi』から過去の発表の一部を視聴できます。
  • Kaigi on Rails

    「初学者から上級者までが楽しめるWeb系の技術カンファレンス」をコンセプトに掲げているRuby on Railsのカンファレンスです。2021年2022年はオンライン開催、2023年はオンラインと現地のハイブリッド開催です。ハッシュタグ『#kaigionrails』から最近の様子を確認したり、YouTubeチャンネル『Kaigi on Rails』から過去の発表の一部を視聴できます。
  • Rails World

    Ruby on Rails公式の国際カンファレンスです。Rails 'を' 開発している人たちによる講演や、最新の技術動向をキャッチアップできるワークショップなどが開催されています。ハッシュタグ『#RailsWorld』から最近の様子を確認したり、YouTubeチャンネル『Ruby on Rails』から過去の発表の一部を視聴できます。
  • Ruby Conferences

    上記のようなカンファレンスをまとめたWebサイトです。日本を含む世界中のカンファレンスの情報と、各カンファレンスの登壇者募集(英語では「CFP: Call for Proposals」と呼びます)の情報などがまとめられています。各情報はGitHubリポジトリで管理されていて、追加したい情報があれば自由に加筆修正ができます。加筆修正の方法を解説した短い動画もあります。

もう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アプリケーションの開発では困難が常につきまといます。世界中から情報を集め、取捨選択し、学びとるスキルが熟練に近づく道です。

    また以下の拡張課題はどれも難易度が高いので、ヒントや実装例も書いておきました。ただしヒントや実装例があったとしても、これまでの演習の中で最も難易度が高いことには変わりません。相当頑張ったにもかかわらず実装できなかった、ということも当然あります。ですが、どうか落ち込まないでください。今あなたは新しいことに挑戦していて、順風満帆にいくことの方が珍しいのです。

    寄り添って個別にサポートすることはできませんが、現代では ChatGPTAI サポート機能などを活用しながら取り組むこともできます。また経験者の体験談などをインタビュー形式でまとめた YouTube 動画の再生リストも用意しました。最新情報については公式の TwitternoteYouTube アカウントをチェックしてみてください。

    それでは、Good Luck!

  • AI 機能を企画・設計・実装する

    現代ではプログラミング言語に依存せず、Web API を通して専門家でなくても AI 作品が開発できるようになりました。当然 Sample App にも AI 機能を追加できるので、もし興味があれば OpenAI API (ChatGPT などを呼び出せる API) を使って AI 機能の企画・設計・実装にチャレンジしてみましょう。Ruby の場合は ruby-openai gem などでお試しできます。(実装例: Rails Tutorial を忍者系 SNS に拡張した)
  • Ruby/Railsのバージョンを上げてみよう

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

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

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

    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の基礎にヒントがないか調べてみましょう。
  • メールアドレス更新時の確認メールを実装する

    Sample App では、アカウント作成時に登録するメールアドレスにメールを送り、所有者であるかどうかを確認しています。同じように、プロフィール編集画面からメールアドレスが更新された場合も、新しいメールアドレスの所有者であるかどうかを確認してから更新した方が良いでしょう。メール周りで分からないことがあったら、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 までご連絡ください。


読み物ガイドの活用例