Ruby on Rails チュートリアル
読み物ガイド
「Railsチュートリアル完走後ってどうするの?」
とお悩みの場面で役立つコンテンツ集です。
目次
- 次のステップを知りたい
- プロダクト開発の全体像を掴みたい
- リファレンスを読めるようになりたい
- コミュニティに参加して仲間を見つけたい
- もう1周して基礎を定着させたい
- Sample App を拡張しながら学びたい
- 読み物ガイドの活用例
次のステップを知りたい
本セクションではRailsチュートリアル完走者を対象としたコンテンツをカテゴリ別に紹介しています。より実践的なRuby/Railsのテクニックが学べる『 基本編』や、RSpecを使った本格的なテストに踏み込む『 テスト編』、設計の考え方やインフラ・CI/CDなどを押さえたい人のための『 設計/インフラ編』、Hotwire・React・Vue.js・Flutterなどを組み合わせてプロダクト開発に挑戦する『 フロントエンド/モバイル編』があります。
基本編
基本編では、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に、Ruby 3.0 から導入された「型」を導入するコンテンツです。「型」のメリットやセットアップ方法、型定義を足していく方法などについて学べます。 -
Railsのサンプルコードで学ぶユーザー認証
Railsチュートリアルで学んだ「認証」について、さらに深く学べる技術書です。本書では割愛した bcrypt 内部の仕組み(ソルトなど)やセッションの仕組み、また本書では紹介しなかった「Google でログイン」「Apple でログイン」といった認証方法(OpenID Connect による認証)について、具体的なコードと共に学べます。 -
Railsの練習帳
Railsの教科書または本チュートリアル完走者レベルの人で、Ruby/Railsの各種リファレンスの読み方や、デバッグの便利道具、トランザクションやミドルウェア(Rack)の役割などがコード付きで学べるコンテンツです。好きなチャプターから読みはじめられるようになっているので、気になるトピックから学習できます。全編無料です。 -
現場で使える 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の基本を押さえた初級者〜中級者向けに、開発現場で使われた技法を幅広く紹介する電子書籍です。よく使われるGemやWebの周辺技術を参考資料付きで説明されているため、「ステップアップ」したい人に特にオススメです。同著者が書いた無料の記事「脱Rails初心者のためのリファクタリングガイド」もぜひ! -
RubyでつくるNFTマーケットプレイス
RailsとHotwireを使って、OpenSeaのようなNFTマーケットプレイスを作りながら学ぶ書籍です。具体的にはMoralis APIやMetaMaskを使った暗号資産(仮想通貨)の取り扱い方から、SolidityやHardhatで実装するNFT購入機能、Fly.ioへのデプロイ方法などが学べます。題材となるNFTマーケットプレイスのソースコードもGitHubから閲覧できます。 -
プロを目指す人のためのRuby入門 - 言語仕様からテスト駆動開発・デバッグ技法まで
Rubyにおけるリファクタリングの要点やテスト駆動開発、デバッグのやり方など、開発現場で必要になる知識を解説しています。Railsチュートリアルでは必要最低限のRubyの知識を学びましたが、さらに1歩進んで、プロとして通用するRubyのコードを書きたい方にオススメです。(Kindle版 / 書籍版) -
RubyMine入門
RailsチュートリアルではVS CodeをベースとしたクラウドIDE「GitHub Codespaces」をデフォルトとして使っていますが、JetBrain社が開発しているRubyとRails向けの強力なIDE「RubyMine」を使っている現役のエンジニアも多数います。本書では、RubyMineで用意されている豊富な機能や、その使い方などが学べます。 -
Rubyのメタプログラミング問題集
本を読んだだけだと習得しにくいRubyのメタプログラミングの知識を、手を動かして理解するための練習問題集です。上記書籍やメタプログラミングRubyなどでRubyについて学んだ後、さらに理解度を高めたい場面などでオススメです。(参考記事:Rubyのメタプログラミング問題集をブラッシュアップした話 / 発端の記事) -
研鑽Rubyプログラミング
実践的なコードのための原則とトレードオフが学べる、中級から上級のRubyプログラマー向けの書籍です。Rubyそのものやライブラリの開発で数多くの実績のあるプログラマーによって執筆された書籍で、ライブラリを "作る" 側の考え方や、メタプログラミングとの付き合い方、データベースに対する心構え、そしてセキュリティへの取り組み方などが学べます。 -
リーダブルコード − より良いコードを書くためのシンプルで実践的なテクニック
クラス名やメソッド名、変数名をどう決めていますか?本書ではMicrosoft社やGoogle社に勤務していた著者から「読みやすいコード (リーダブルコード)」を書くための考え方について学べます。また巻末では、Ruby開発者(コミッター)の1人であり、OSS Gateの発起人でもある @kou さんによる「読みやすいコードを書けるようになるための3つのステップ」も付録されています。 -
情報セキュリティ(脆弱性対策)- IPA 独立行政法人 情報処理推進機構
『基本情報技術者試験』や『応用情報技術者試験』などの国家試験を運営するIPAが無料で公開している資料集です。例えば『安全なウェブサイトの作り方』の資料では、SQLインジェクションやOSコマンド・インジェクションなどの問題と対策が解説されています。Railsに特化した情報セキュリティについてはRailsガイドの『Railsセキュリティガイド』をお読みください。
テスト編
Railsチュートリアルでは小さくて基本的なテストを紹介しましたが、実際の開発現場ではRSpecやテスト自動化サービスなどを使う場面も多いです。テスト編では、より本格的なテストを学びたい人向けのコンテンツを紹介しています。
-
開発を支える自動テスト (動画)
私たちの身近にあるレシート (適格簡易請求書) の実装を題材として、『開発を支える自動テスト』について学べる無料のセミナー動画です。講師はテスト駆動開発の実践者である@t_wadaさんになります。(主催: Ruby Association) -
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上で無料公開されています。
設計/インフラ編
設計/インフラ編では、アイデアから設計に落とし込むまでの考え方や、AWSやGitHub Actionsの使い方、継続的インテグレーション(CI)や継続的デリバリー(CD)などが学べるコンテンツを紹介しています。
-
AWSとRubyではじめるサーバーレス入門
AWSとRubyを使って、Slack上で動くアプリやBotを作りながらサーバーレス・コンピューティングについて学べる書籍です。具体的にはAWS LambdaやAmazon API Gatewayを使ったサーバーレス環境の構築から、Slack APIによるアプリ開発、さらにはAmazon DynamoDBやAmazon SQSの使い方なども学べます。正誤表やソースコードはGitHubからご確認いただけます。 -
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の紐付けなど、一連のデプロイの流れが学べます。いくつかの章は試し読みできます。 -
RailsとVue.jsでSPA開発+AWS(Fargate・CloudFront)デプロイ解説チュートリアル
Railsチュートリアルを完走したレベルの人で、Rails+Vue.jsで作ったアプリをAWS上にデプロイしてみたい人向けのテキスト教材です。上記テキストのVue.js対応版で、より本格的な本番環境をVue.jsで構築したい人にオススメです。また設定画面のスクリーンショットも多く、画面を確認しながら学べます。いくつかの章は試し読みできます。
フロントエンド/モバイル編
フロントエンド/モバイル編では、段階的に改善できるモダンな取り組み『Hotwire』から、従来のReactやVue.js、またモバイル向けのFlutterと組み合わせたプロダクト開発に挑戦したい人向けのコンテンツを紹介しています。
-
猫でもわかるHotwire入門 Turbo編
本チュートリアルではHotwireのごく一部の機能のみを紹介しましたが、TurboやStimulusなど、Hotwireの機能は奥が深いです。本書はHotwireをもっと学びたい人向けの教材で、「管理画面の開発」を題材として各種メッセージの日本語化やRansackを用いた全文検索の実装なども学べます。全編無料!(参考: Hotwireのコミュニティもあります) -
Turbo Handbook (Hotwire 公式ハンドブック)
Hotwireの開発チームによって制作された公式ハンドブック『Turbo Handbook (英語)』の日本語訳です。Hotwireの核となる仕組み『Turbo』について説明されている公式ドキュメントで、Turboを構成する要素である『Turboドライブ』や『Turboフレーム』をはじめ、iOS/Androidアプリ開発もできる『Turboネイティブ』についても触れられています。(株) 万葉によって制作され、GitHubからも公開されています。全編無料です。 -
Hotwireことはじめ (動画)
上記Turbo Handbookの翻訳にも携わっている (株) 万葉によるHotwire解説セミナー動画です。Railsの知識はあるがHotwireに不慣れな方々を対象として、座学+ライブコーディング形式の動画でHotwireの基礎が学べます。全編無料です。(主催: Ruby Association) -
はじめてのHotwire 〜Railsで作るSPA風チャットアプリ〜
Railsチュートリアルを完走したレベルの人で、ハンズオン形式でHotwireについて学びたい人向けの書籍です。Hotwireは『Turbo』『Stimulus』『Strada』の3つの要素から構成されていて、本書ではそのうちの2つ『Turbo』『Stimulus』を使って簡単なチャットアプリを作っていきます。GitHub上にある初期状態のチャットアプリに、複雑なJavaScriptを書かずにSPA風の動きを追加する流れが掴めます。 -
フロントエンド・ SPA 研修
Railsチュートリアルで完成させたSample Appを拡張させながら、SPA(Single Page Application)が学べるGMOペパボの公開研修資料です。JavaScriptとECMAScriptとの違いや、フロントエンドのモジュールシステムやビルドツールの使い方、Rails APIとReactを組み合わせ開発方法などが学べます。全編無料です。 -
モバイルアプリケーション(Flutter)研修
Railsチュートリアルで完成させたSample Appを拡張させながら、モバイルアプリ開発が学べるGMOペパボの公開研修資料です。モバイルアプリ開発などで使われるフレームワーク『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とReactで作るTODOアプリ開発チュートリアル
Railsチュートリアルを完走したレベルの人で、初めて他のフロントエンド技術(React)と組み合わせた開発に挑戦する人向けのテキスト教材です。UI部分にはChakra UIを使い、Reactにおけるコンポーネントやフックなどについても学んでいきます。いくつかの章は試し読みできます。 -
RailsとReactで作るGoogle Calendar風アプリ開発チュートリアル
Railsチュートリアルを完走したレベルの人で、他のフロントエンド技術(React)と組み合わせた認証機構・UI 実装などを学びたい人向けのテキスト教材です。認証部分にはdevise gemを、UI部分にはChakra UIを使って、カレンダーアプリを作りながら学んでいきます。いくつかの章は試し読みできます。 -
Rails × Next.js × AWS ハンズオン解説
Railsチュートリアルを完走したレベルの人で、実務未経験の方やエンジニア転職を検討されている方などを対象としたテキスト教材です。『Rails APIモード』とReactのフレームワーク『Next.js』の組み合わせ方や、DockerやTypeScriptを使った開発、GitHub ActionsやAWS Fargateを使ったデプロイなどが学べます。 -
RailsとReactによるCRUDアプリ作成チュートリアル(翻訳)
Railsチュートリアルを完走したレベルの人で、より実践的なフロントエンド技術(React)と組み合わせたCRUD処理を学びたい人向けのテキスト教材です。JavaScriptのバンドラー『esbuild』を使って解説されますが、『Shakapacker (Webpackerの後継)』のセットアップ方法も解説しています。全編無料!
プロダクト開発の全体像を知りたい
本セクションでは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 などの認証系カテゴリから RSpec などのテスト系カテゴリまで、100 以上の幅広いカテゴリから開発に役立つ gem を探せます。掲載基準には「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チュートリアル本編をさらに深く学べるコンテンツを紹介しています。「ローカル開発に挑戦したい」「完走はできたけど理解できた自信がない」と感じている方にオススメです。
-
Railsチュートリアル実践入門シリーズ
Railsチュートリアルを進めていて『ローカル開発に挑戦したい』『Webの基本を学び直したい』と感じた方にオススメのコンテンツです。本シリーズにはテキストエディタ編、コマンドライン編、Git/GitHub編、HTML編、CSS & Design編、JavaScript編などがあり、それぞれのトピックをチュートリアル形式で学べます。各コンテンツの概要は『学習の流れ』からご確認できます。 -
Railsチュートリアル電子書籍版(PDF/EPUB)
RailsチュートリアルのWebテキストを電子書籍に再編集したコンテンツです。すべての章をEPUB/PDF形式でまとめているので、場所を気にせずオフラインで読めます。全文検索も可能で『読み返しながら開発したい』といった場面でも便利です 🔍💨 -
Railsチュートリアル解説動画 + AIサポート + トレーニング
イラストと実演付きの解説動画で学べる速習パックです(倍速再生にも対応)。AIがエラーや疑問を補足する『AIサポート』や、大学/大学院で使われている回答付き問題集『トレーニング』も同梱されているため、「素早く学びたい」「理解度を高めたい」という場面でオススメです。 -
質問対応サポート付き解説動画【提供: 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アプリケーションの開発では困難が常につきまといます。世界中から情報を集め、取捨選択し、学びとるスキルが熟練に近づく道です。
また以下の拡張課題はどれも難易度が高いので、ヒントや実装例も書いておきました。ただしヒントや実装例があったとしても、これまでの演習の中で最も難易度が高いことには変わりません。相当頑張ったにもかかわらず実装できなかった、ということも当然あります。ですが、どうか落ち込まないでください。今あなたは新しいことに挑戦していて、順風満帆にいくことの方が珍しいのです。
寄り添って個別にサポートすることはできませんが、現代では ChatGPT や AI サポート機能などを活用しながら取り組むこともできます。また経験者の体験談などをインタビュー形式でまとめた YouTube 動画の再生リストも用意しました。最新情報については公式の Twitter や note、YouTube アカウントをチェックしてみてください。
それでは、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つのテストフレームワーク『RSpec』を使ってみる
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アクセスを許可する必要があります。 -
他の拡張例
上記の他にも 「いいね (Like) 機能」 「ユーザー招待機能」 「RuboCop (Code Formatter) を導入してみる (導入例)」 「エラーメッセージをI18nで日本語化する」 「オートコンプリート機能」 といったアイデアがありそうです。「こんな拡張を実装してみた」といった例がありましたら @RailsTutorialJP までご連絡ください。
読み物ガイドの活用例
RSpec始めていく!そして きょうやるToDo @kyo_yaru_todo にテストを書くのだ🐫#Railsチュートリアル 完走者向けコンテンツまとめ「読み物ガイド」 https://t.co/eofGzmLfMu @RailsTutorialJPより
— らくだ🐫.rb (@rakudaSanDesu) September 24, 2022
Railsチュートリアルの読み物ガイドが拡充していてすごい!フロントエンドとの連携やデプロイ環境の構築とかって情報ないと結構詰まるポイントだと思うので助かりますね。もう少ししたら久々にRails触ってみようと思うのでそのときにまた色々見てみよう。https://t.co/K072tTzTEl
— ゆう (@yuuu1654) September 17, 2023
@yasulab さんに紹介していただいた、railsガイドのGMOのバックエンドRails +フロントFlutterの資料がめちゃ良さそうでした。
— Hama (@akmhmgc) July 29, 2023
本日はありがとうございました!!#tqrk14https://t.co/3OoxuFj9hY
安川さんに取り上げていただき感動です!ちゃくどんは、認証周りや多対多の設計など、Railsチュートリアルの重要なエッセンスを余すことなく詰め込んでいます🥰学習してきた教材も読み物ガイドを参考にしたものばかりですw🙈今後も有益な情報を楽しみにしております!
— もりを@ちゃくどん運営中 (@tonka2w0) 2024年2月28日
Railsチュートリアルは YassLab 社によって運営されています。
コンテンツを継続的に提供するため、書籍・動画・質問対応サービスなどもご検討していただけると嬉しいです。
研修支援や教材連携にも対応しています。note マガジンや YouTube チャンネルも始めたので、よければぜひ遊びに来てください!