Railsの基本:MVCとルーティング
Ruby on Railsの仕組みを学びながら、SNSサービスのトップページを作成します。リクエスト・ルーティング・コントローラ・ビューの役割を理解しましょう。
- MVC
- ルーティング
- コントローラ
- ビュー
ページの追加と共通レイアウト
ルーティングを書き換えてURLを設計し、Aboutページを自力で追加します。共通レイアウトのヘッダーと画像表示で見た目を整えましょう。
- ルーティング
- レイアウト
- 静的ファイル
ビューとインスタンス変数 プラス
ビューで変数を表示し、each で繰り返し、コントローラからインスタンス変数でデータを受け渡して投稿一覧ページを作ります。
- マイグレーション
- モデル
- データベース
モデルとマイグレーション プラス
マイグレーションとモデルを使って、投稿データをデータベースに保存・表示する仕組みを作ります。
- マイグレーション
- モデル
- データベース
投稿の作成と詳細表示 プラス
form_withとStrong Parametersで投稿フォームを作り、新規作成と詳細表示、関連リンクまでを実装します。
- CRUD
- form_with
- Strong Parameters
投稿の削除とflashメッセージ プラス
DELETEメソッドで投稿を削除し、flashメッセージ・新しい順の並び替え・findの使い分けで実装を仕上げます。
- CRUD
- DELETE
- flash
resourcesとRESTfulルーティング プラス
RESTの考え方と resources による7つのルーティングの自動生成を学び、パスヘルパーに移行します。
- REST
- resources
- パスヘルパー
投稿の編集と更新 プラス
編集フォームとupdateアクションを作り、PATCHリクエストによる更新処理を実装します。
- CRUD
- PATCH
- フォーム
バリデーション プラス
モデルのバリデーションで不正なデータを防ぎ、エラーメッセージの表示と属性名の日本語化を行います。
- バリデーション
- エラーメッセージ
- i18n
ユーザー機能(一覧・詳細) プラス
Userモデルとusersのルーティングを作り、一覧・詳細ページを実装します。投稿で学んだCRUDの流れを、ユーザーという別のリソースに応用します。
- CRUD
- resources
- ユーザー管理
ユーザー機能(登録・編集) プラス
登録フォームとcreateアクションでユーザー登録を実装し、バリデーション・編集機能・リンク整備でユーザー機能を仕上げます。
- CRUD
- バリデーション
- フォーム
画像アップロードとActive Storage プラス
file_fieldによる画像アップロードと、publicフォルダへの保存・表示を実装します。
- 画像アップロード
- フォーム
セッションと認証 プラス
hassecurepasswordとsessionでログイン・ログアウトを実装し、current_userでログイン中のユーザーを扱えるようにします。
- 認証
- セッション
- current_user
認可とアクセス制御 プラス
登録後の自動ログインと、before_actionによるページ制限・本人チェックで、ログイン状態に応じたアクセス制御を実装します。
- 認可
- before_action
- アクセス制御
投稿とユーザーの関連付け プラス
postsテーブルにuseridを追加し、belongstoとhas_manyで投稿とユーザーを紐付けます。ログイン中のユーザーとして投稿できるようにします。
- アソシエーション
- 外部キー
- belongs_to
- has_many
投稿者の表示と本人チェック プラス
投稿一覧に投稿者を表示し、自分の投稿だけ編集・削除できるよう制限します。dependent: :destroyでユーザー削除時の投稿も整理します。
- アソシエーション
- 認可
- dependent: :destroy
いいね機能とネストしたリソース プラス
likes中間テーブルとネストしたルーティングで、投稿へのいいね作成・取り消しといいねボタンを実装します。
- 多対多
- ネストルーティング
- 中間テーブル
いいねした投稿の一覧と集計 プラス
has_many :throughで「いいねした投稿」を取得して一覧ページを作り、いいね数の表示とN+1問題への対策を行います。
- has_many :through
- N+1問題
- includes
実務レベルまで プロ
Active Recordクエリとseeds プロ
scope・検索・ランキング・N+1対策など実務で使うクエリと、seedsによる初期データ投入を学びます。
- クエリ
- scope
- N+1対策
RSpecでテストを書こう プロ
実務で広く使われるテストフレームワーク RSpec を学びます。セットアップからモデル spec・リクエスト spec の書き方、let や context による整理までを身につけましょう。
- テスト
- RSpec
リファクタリングと次のステップ プロ
パーシャルによるビュー共通化、日時表示、set_◯◯によるコントローラ整理でアプリを仕上げ、次に学ぶ技術を紹介します。
- パーシャル
- リファクタリング
- i18n
実務のデータ設計と競合への対処 プロ
保存時の重複、途中失敗、同時編集を再現し、DB制約・トランザクション・楽観的ロックでPostAppのデータを守ります。
- DB制約
- トランザクション
- 楽観的ロック
件数が増えても使いやすい一覧 プロ
新着が増えても重複しないページング、更新に追従するキャッシュ、実行計画を見て足すインデックス、先読みで解消する N+1 を実装します。SQLの計測と合わせ、速さと正しさを両立させましょう。
- ページング
- キャッシュ
権限と再設定をテストで守る プロ
他人による更新や所有者の偽装をリクエストテストで検出し、期限付きトークンの改ざん・期限切れ・再利用を確かめ、ログインの試行回数を制限します。
- 認可テスト
- パスワード再設定
- レート制限
メール通知と非同期処理 プロ
保存した通知からメールを作り、別プロセスへジョブを渡します。失敗した通知の再実行と、重複を防げる範囲まで考えましょう。
- Action Mailer
- Active Job
- 再実行
Active StorageとAction Textの実装 プロ
プロフィール画像をActive Storageへ移し、添付の検証と削除を実装します。投稿にはAction Textで詳しい説明を追加します。
- Active Storage
- Action Text
- ファイル検証
監視・バックアップ・公開前の検証 プロ
起動確認とDB確認を分け、バックアップからデータを読み戻し、ログの情報を制御します。CI、段階的なDB変更、公開後の確認と復旧も整理します。
- ヘルスチェック
- バックアップ
- ログ
- リリース
オリジナルアプリを開発しよう 道場 プロ
コースで学んだことを活かして、AI エージェントと一緒に自分だけの Rails アプリケーションを自由に作りましょう。
- 総合演習
- オリジナルアプリ開発
- Progate Code
学習内容をみる (1演習)
よくある質問
- Rubyを学んでいなくても受講できますか?
- 本コースはRubyの基本文法(変数、配列、ハッシュ、メソッド、クラスなど)を理解していることを前提としています。はじめての方は、先にRubyコースを受講することをおすすめします。
- 環境構築は必要ですか?
- 必要ありません。ブラウザ上でRailsアプリケーションを実行しながら学習できるため、パソコンにRubyやRailsをインストールしなくても始められます。
- このコースを修了すると何ができるようになりますか?
- SNSの基本機能に加え、DB制約と同時編集への対処、権限のテスト、ページングとキャッシュ、メールとジョブ、画像とリッチテキスト、監視とバックアップを実装・検証できます。公開サーバーの構成や外部サービスの契約・実デプロイは演習に含みません。