Ruby on Rails チュートリアル
読み物ガイド

「Railsチュートリアル完走後ってどうするの?」
とお悩みの場面で役立つコンテンツ集です。
目次
- 次のステップを知りたい
- プロダクト開発の全体像を掴みたい
- リファレンスを読めるようになりたい
- コミュニティに参加して仲間を見つけたい
- もう1周して基礎を定着させたい
- 完成した Sample App を拡張しながら学びたい
次のステップを知りたい
本セクションではRailsチュートリアル完走者を対象としたコンテンツをカテゴリ別に紹介しています。より実践的なRuby/Railsのテクニックが学べる『 基本編』や、RSpecを使った本格的なテストに踏み込む『 テスト編』、React・Vue.js・Flutterなどを組み合わせたプロダクト開発に挑戦する『 フロントエンド/モバイル編』、設計の考え方やインフラ・CI/CDなどを押さえたい人のための『 設計/インフラ編』があります。
基本編
基本編では、Ruby/Railsのより実践的なテクニックが学べる次のステップを紹介しています。
-
対談シリーズ『Railsチュートリアル完走者に聴く』(YouTube)
Railsチュートリアル完走者とのYouTube対談動画です。『3ヶ月でWebサービスを開発した話』や『医者からエンジニアになった話』、『徳丸先生に聴くWebセキュリティの学び方』などのさまざまな事例を無料で公開しています。興味あるトピックがあればぜひご視聴ください。 -
Ruby/Railsのリファレンスを読めるようになる
Railsチュートリアルでは「Sample App」の開発を通してさまざまなメソッド・設計・Web技術などに関する基本的な用語を紹介しました。各用語の雰囲気が掴めたい今であれば、各リファレンスの説明文も少しずつ理解できるようになるはずです。リファレンスが読めることは生産的な開発に繋がるので、ぜひリファレンスにも慣れていきましょう。詳しくは後述の『 リファレンスを読めるようになりたい』をご参照ください。 -
ローカル環境に挑戦しながらもう1周する
Railsチュートリアルでは「クラウドIDE」で開発することで、学習の難所とされる「環境構築」をカンタンにしています。しかしエラーに遭遇し、その1つ1つを乗り越えてきた完走者の皆さまであれば、この「環境構築」に挑戦できる十分なスキルが身に付いているはずです。後述の『 もう1周して基礎を定着させたい』なども参考にしつつ、ぜひローカル開発に挑戦してみてください。 -
Railsチュートリアルを拡張しながら学ぶ
Railsチュートリアルで完成させた「Sample App」を拡張しながら学ぶための課題集です。Ruby/Railsのアップグレードや、RSpecの導入、検索機能の実装などの拡張課題と、そのヒントをまとめています。(利用事例: プログラミング勉強を加速させる7つの習慣 - Qiita) -
Railsチュートリアルの Sample App に型を導入
Railsチュートリアルで完成させた「Sample App」に、実際に手を動かしながら「型」を導入するコンテンツです。 Rails アプリケーションへの、「型」の導入や運用の雰囲気を感じてみたい方にオススメです。 -
現場で使える Ruby on Rails 速習実践ガイド
Railsチュートリアルではminitestやerbなど、Railsのデフォルトの機能を使ってSNSを開発しましたが、実際の現場ではより多様なgemを駆使して開発が進みます。本書ではRSpecやSlimなど、Railsチュートリアルでは紹介しきれなかった様々なgemや、現場で役立つ実践的な考え方に触れることができます。(Kindle版 / 書籍版) -
コードレビューで学ぶ Ruby on Rails
Railsチュートリアルや「ソニックガーデンキャンプ」などで一通りの基本を身につけた方々が、中級者を目指すために役立つ技術書です。中級者向けプログラミングコミュニティ「ソニックガーデンジム」で実際にあったコードレビューを元に、Model・View・Controller・Testなどのトピック別のノウハウが学べます。 -
パーフェクトRuby on Rails
Railsチュートリアルでプロダクト開発の基本を学びましたが、他にも非同期実行やリアルタイム通信、OAuthを使ったログインやフロントエンドと組み合わせた開発手法などがあり、奥も深いです。さらに本格的なプロダクト開発を学びたい場面でぜひ!(Kindle版 / 書籍版) -
Ruby on Railsステップアップ
Railsの基本を押さえた初級者〜中級者向けに、開発現場で使われた技法を幅広く紹介する電子書籍です。Railsチューリアルでは紹介しきれなかったRailsの便利な機能や、よく使われるGem、Webの周辺技術(Docker・フロントエンドなど)を参考資料付きで説明されているため、まさに「ステップアップしたい」と考えている人にオススメです。同著者が書いた無料の記事「脱Rails初心者のためのリファクタリングガイド」もぜひ! -
プロを目指す人のためのRuby入門 - 言語仕様からテスト駆動開発・デバッグ技法まで
Rubyにおけるリファクタリングの要点やテスト駆動開発、デバッグのやり方など、開発現場で必要になる知識を解説しています。Railsチュートリアルでは必要最低限のRubyの知識を学びましたが、さらに1歩進んで、プロとして通用するRubyのコードを書きたい方にオススメです。(Kindle版 / 書籍版) -
情報セキュリティ(脆弱性対策)- IPA 独立行政法人 情報処理推進機構
『基本情報技術者試験』や『応用情報技術者試験』などの国家試験を運営するIPA(独立行政法人 情報処理推進機構)が無料で公開している資料集です。『安全なウェブサイトの作り方』や『安全なSQLの呼び出し方』などが取り揃えられています。Railsに特化した情報セキュリティについてはRailsガイドの『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上で無料公開されています。
フロントエンド/モバイル編
フロントエンド/モバイル編では、React・Vue.js・Flutterなどを組み合わせたプロダクト開発に挑戦したい人向けのコンテンツを紹介しています。
-
フロントエンド・ SPA 研修
Railsチュートリアルで完成させた「Sample App」を拡張させながら、SPA(Single Page Application)が学べるGMOペパボの公開研修資料です。JavaScriptとECMAScriptとの違いや、フロントエンドのモジュールシステムやビルドツール、Reactの初歩的な使い方、Rails APIとReactを組み合わせ開発方法などが学べます。全編無料です。(GitHubリポジトリを見る) -
モバイルアプリケーション(Flutter)研修
Railsチュートリアルで完成させた「Sample App」を拡張させながら、モバイルアプリ開発が学べるGMOペパボの公開研修資料です。宣言的UIプログラミングやFlutterの特徴、Dart言語の初歩的な使い方、Rails APIとモバイルアプリを組み合わせた開発方法などが学べます。全編無料です。(GitHubリポジトリを見る) -
RailsとVue.jsでリアルタイムチャットを作りながら、一連の開発工程を学ぶ
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(Vue.js)を学びたい人向けのテキスト教材です。Railsチュートリアルでは紹介しきれなかったWebSocket通信が題材となっており、リアルタイムチャット機能を作りながら一連の開発工程が学べます。また、Postmanを使ったAPIのテスト方法やChrome DevToolsの使い方も学べるのが特徴です。いくつかの章は試し読みできます。 -
RailsとNuxtでバックエンドとフロントエンドを分けた開発を行ってみよう!
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(Vue.js)を学びたい人向けのテキスト教材です。『Rails APIモード』とVue.jsのフレームワーク『Nuxt.js』の組み合わせ方や、Vue.jsやNuxt.jsの基本的な知識、Firebaseを使ったログイン認証などが学べます。いくつかの章は試し読みできます。 -
Rails APIとNuxt.jsで作るJWT(JSON Web Token)ログイン認証
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(Vue.js)や環境構築(Docker)を学びたい人向けの動画教材です。『Rails APIモード』とVue.jsのフレームワーク『Nuxt.js』の組み合わせ方や、Dockerを使った開発環境の構築、Dockerを使ったHerokuへのデプロイ、JWT(JSON Web Token)を使ったログイン認証などが学べます。いくつかのシーンはYouTubeで視聴できます。 -
RailsとReactでUberEats風SPAアプリケーションをつくってみよう!
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(React)を学びたい人向けのテキスト教材です。『Rails APIモード』を使って、RailsとReactの組み合わせ方やデバッグ時の注意点、Chrome DevToolsの見方などが習得できます。いくつかの章は試し読みできます。 -
Rails 7とReactによるCRUDアプリ作成チュートリアル(翻訳)
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(React)と組み合わせたCRUD処理を学びたい人向けのテキスト教材です。JavaScriptバンドラーに『esbuild』を使って進めていきますが、『Shakapacker (Webpackerの後継)』のセットアップ方法についても解説しています。全編無料の記事となっています。 -
猫でもわかるHotwire入門 Turbo編
Railsチュートリアルを完走したレベルの人で、HotwireのTurboをもっと学びたい人向けの無料テキスト教材です。Rails 7でゼロからアプリを構築してTurboのさまざまな機能を管理画面で実際に動かし、Stimulusでカスタマイズします。Bootstrap 5によるスタイル指定や日本語ロケール、Ransack gemによる全文検索機能なども体験できます。Turbo DriveやTurbo Framesといった個別の機能についても詳しく解説されており、各種TipsやHotwire情報源としても便利です。
設計/インフラ編
設計/インフラ編では、アイデアから設計に落とし込むまでの考え方や、AWSやGitHub Actionsの使い方、継続的インテグレーション(CI)や継続的デリバリー(CD)などが学べるコンテンツを紹介しています。
-
ECサイトを事例にして学ぶアプリケーション設計方法
Railsチュートリアルを完走したレベルの人で、より本格的な「設計」について学びたい人向けのテキスト教材です。Railsチュートリアルでは設計済みのアプリを題材としていましたが、本教材ではER図やリレーショナルDBなどを駆使して、アイデアを設計に落とし込む手順が学べます。「アプリを作ろうとして手が止まってしまう」といった場面で困っている方はぜひ!いくつかの章は試し読みできます。 -
フリマアプリを作りながら学ぶRuby on Rails実践ガイド
Railsチュートリアルを完走したレベルの人で、Sample Appとは別の題材「フリマアプリ」で作りながら学べるテキスト教材です。商品配送や電話番号確認のシステム設計、Stripeを使った決済システムの実装など、より実践的なプロダクト開発を学びたい人にオススメです。PDF A4換算で568ページのボリュームとなっています。 -
Ruby on RailsでStripeを使った決済処理付き簡易ファッションECサイトを作ろう!
Railsチュートリアルを完走したレベルの人で、アパレルを取り扱うECサイト(インターネット通販・ネットショップなど)の基本的な構築を学べます。ECサイトを題材としてStripeの基本的な使い方を体験してみたい方にオススメです。いくつかの章は試し読みできます。 -
RailsアプリケーションをAWSに自動デプロイする方法を学ぼう!
Railsチュートリアルを完走したレベルの人で、より実践的な継続的インテグレーションと継続的デリバリーを学びたい人向けのテキスト教材です。Railsチュートリアルで完成させた「Sample App」を使って、GitHub Actionsによるテストの自動化と、AWS(EC2)へのデプロイ方法およびその自動化について学べます。いくつかの章は試し読みできます。 -
RailsとReactでSPA開発+AWS(Fargate・CloudFront)デプロイ解説チュートリアル
Railsチュートリアルを完走したレベルの人で、Rails+Reactで作ったアプリをAWS上にデプロイしてみたい人向けのテキスト教材です。独自ドメインの取得や証明書の発行、Docker化したRailsアプリのAWS Fargateへのアップロード、Route53とCloudFrontの紐付けなど、一連のデプロイの流れが学べます。いくつかの章は試し読みできます。
プロダクト開発の全体像を知りたい
本セクションでは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プランや、法人向け協賛プラン、ダウンロード可能な電子書籍版もあります。 -
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 on Rails開発情報サイト
BPS株式会社が運営する、RubyやRailsの最新情報を日本語で紹介するWebメディアです。「週刊Railsウォッチ」ではRuby on Railsに関する最近の動きが定期的にまとめられているので、「Railsの次のバージョンでは何が来るか?」を知りたい人にオススメです。ハッシュタグは「#週刊Railsウォッチ」です。
コミュニティに参加して仲間を見つけたい
本セクションではRuby関連のコミュニティや、Ruby関係者が立ち上げたコミュニティを紹介しています。一緒に学ぶ仲間を見つけたり、よく使うライブラリの作者と出会うキッカケなどになれば幸いです。
-
ruby-jp
Ruby プログラマー同士の交流を目的としたSlackワークスペースです。世代や企業の垣根を超えて、技術者同士が交流できる場として多くのRubyistが集まっています。初心者歓迎で質問・相談・情報交換なども活発に行われているので、コミュニティ参加の入り口としてぜひ!(公式Webサイトを見る) -
OSS Gate
プログラミング言語Ruby 'を' 開発している @kou さん達が立ち上げた、OSS(Open Source Software)開発に参加する「入り口」を提供する取り組みです。OSS開発に未参加の人を参加する人へ、少し参加したことがある人を継続的に参加する人へ。そうやってOSS開発に参加する人を継続的に増やす取り組みとなっているため、ライブラリなどの開発に「挑戦したい」「貢献したい」といった方にオススメです。イベントに参加して学ぶ形式と、動画で学ぶ形式があります。詳細は公式Webサイトから! -
RubyKaigi
世界中のRubyistが集まる年1回の国際カンファレンスです。例えば2022年は三重、2023年は長野で開催され、2024年は沖縄で開催となっています。ハッシュタグ『#rubykaigi』から当日の様子を確認したり、YouTubeチャンネル『RubyKaigi』から過去の発表を観ることができます。
もう1周して基礎を定着させたい
本セクションではRailsチュートリアル本編をさらに深く学べるコンテンツを紹介しています。「ローカル開発に挑戦したい」「完走はできたけど理解できた自信がない」と感じている方にオススメです。
-
Railsチュートリアル実践入門シリーズ
Railsチュートリアルを進めていて『ローカル開発に挑戦したい』『Webの基本を学び直したい』と感じた方にオススメのコンテンツです。本シリーズにはテキストエディタ編、コマンドライン編、Git/GitHub編、HTML編、CSS & Design編、JavaScript編などがあり、それぞれのトピックをチュートリアル形式で学べます。各コンテンツの概要は『学習の流れ』からご確認できます。 -
Railsチュートリアル電子書籍版(PDF/EPUB)
RailsチュートリアルのWebテキストを電子書籍に再編集したコンテンツです。すべての章をEPUB/PDF形式でまとめているので、場所を気にせずオフラインで読めます。全文検索も可能で『読み返しながら開発したい』といった場面でも便利です 🔍💨 -
Railsチュートリアル解説動画 + トレーニング
イラストと実演で効率的に学べる解説動画で、すばやく復習したい人にオススメです。2022年から回答付き問題集「トレーニング」も同梱され、70問以上の問題を通して各章の理解度もチェックできます。「コードは動いたけど理解できたか不安」という人に特にオススメです。 -
質問対応サポート付き解説動画【提供: ShareWis】
現役Rubyエンジニアのサポート付きで学べる質問対応サービスです。上記の解説動画に質疑応答サポートを組み合わせて、さらに効率よく復習したい方にオススメです。
上記の他、YouTubeチャンネルやnoteマガジンもあります。『Ruby/Rails学習者の統計データ』や『Railsチュートリアルのビジネスモデル』などを公開しているので、ぜひご購読ください!🔔✨
完成した Sample App を拡張しながら学びたい
本セクションでは完走者に好評だった Sample App の拡張課題を紹介しています。いずれも高い難易度となっていますが「Sample App を拡張しながら学びたい」「自分の実力を試してみたい」といった場面でお役に立てば嬉しいです。
-
はじめに
答えのない課題に挑戦することは、より実践的な知識の獲得にもつながります。そこで本セクションでは、完成したSample Appをさらに拡張させるアイデア(拡張課題)をいくつかご紹介します。それぞれ独立しているので、簡単そうな課題や興味のある課題から取り掛かってみても良いでしょう。ここで試行錯誤した経験は、Railsチュートリアルから巣立って、自分のオリジナルなWebアプリケーションを作るときにも役立つことでしょう。
しかしいざ実装し始めてみると、全く手が動かなくかもしれません。それも当然です。「新しいことに挑戦する」というのは真っ白なキャンバスに絵を描き始めるようなもので、慣れるまでは気後れしてしまいがちです。そこで、ささやかながら2つほどアドバイスをしてみたいと思います。
- 実装していて困ったら、リファレンスを読む習慣を身につけましょう。例えばRailsならRailsガイドやRails APIをチェックしてみてください。読み物ガイドにある「 リファレンスを読めるようになりたい」も役立ちます。
- できるだけ念入りに検索し、調べたいトピックに関する情報を探してみましょう。google.com から英語で検索したり、英語の記事をDeepL公式Chrome拡張で読むのもオススメです。Webアプリケーションの開発では困難が常につきまといます。世界中から情報を集め、取捨選択し、学びとるスキルが熟練に近づく道です。
以下の拡張課題はどれも難易度が高いので、ヒントも書いておきました。ただしヒントがあったとしても、これまでの演習の中で最も難易度が高いことには変わりません。相当頑張ったにもかかわらず挫折することも当然あると思いますが、どうか落ち込まないでください。
時間にも限りがあるため個別サポートはできそうにありませんが、経験者の体験談や実装例などをブログ記事やインタビュー動画などで紹介しています。よければ @RailsTutorialJP やnoteマガジン、YouTube動画をチェックしてみてください。
それでは、Good Luck!
-
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の基礎にヒントがないか調べてみましょう。 -
RSS フィードを提供する
ユーザーごとのマイクロポストをRSSフィードする機能を実装してください。次にステータスフィードをRSSフィードする機能も実装し、余裕があればフィードに認証スキームも追加してアクセスを制限してみてください。 -
REST API を提供する
多くのWebサイトはAPI(Application Programmer Interface)を公開しており、第三者のアプリケーションからリソースのget/post/put/deleteが行えるようになっています。サンプルアプリケーションにもこのようなREST APIを実装してください。解決のヒントは、respond_to
ブロックをコントローラーの多くのアクションに追加することです。このブロックはXMLをリクエストされたときに応答します。セキュリティには十分注意してください。認可されたユーザーにのみAPIアクセスを許可する必要があります。 -
他の拡張機能
上記の他にも、「いいね機能」「シェア機能」「erbのコードをHamlで書き直す」「エラーメッセージをI18nで日本語化する」「オートコンプリート機能」といったアイデアがありそうです。「こんな拡張を実装してみた」といった例がありましたら @RailsTutorialJP までご連絡ください。
ページ上部に戻る
Railsチュートリアルは YassLab 社によって運営されています。
コンテンツを継続的に提供するため、書籍・動画・質問対応サービスなどもご検討していただけると嬉しいです。
研修支援や教材連携にも対応しています。note マガジンや YouTube チャンネルも始めたので、よければぜひ遊びに来てください!