Ruby on Rails

Ruby on Railsを使い、SNSのPostAppを育てながらWebアプリケーション開発を学びます。前半ではMVC・RESTfulなCRUD・フォーム・認証と認可・アソシエーション・テストを身につけます。

後半では重複や同時編集、配送の失敗など実務で出会う状況を再現し、データの整合性、ページングとキャッシュ、メールとジョブ、ファイルとリッチテキスト、監視とバックアップへ進みます。すべての演習をブラウザ内で実行し、本番用の構成との違いも確かめます。

  • Ruby on Rails
  • MVC
  • RESTfulルーティング
  • データベース
  • ログイン機能
  • アソシエーション
  • テスト
  • DB設計とトランザクション
  • 性能改善
  • Active Job・Action Mailer
  • Active Storage・Action Text
  • 監視・バックアップ

こんな人におすすめ

Rubyの基礎を学び終えて、Webアプリケーション開発に挑戦したい方におすすめのコースです。

  • Rubyの基礎を学び、Webアプリケーションを作ってみたい方
  • Railsの仕組み(MVC)を理解したい方
  • ログイン機能やいいね機能など、Webサービスの定番機能の作り方を知りたい方
  • 実際に動くSNSサービスを自分の手で完成させたい方

Ruby on Railsで学べること

Railsアプリケーションの作成、ルーティング・コントローラ・ビューの役割、マイグレーションとモデルによるデータベース操作、resourcesによるRESTfulなルーティング、Strong Parametersとフォームからのデータ保存・編集・削除、バリデーションとメッセージ表示、ユーザー登録と画像アップロード、has_secure_passwordとsessionを使ったログイン機能と認可、belongs_to・has_manyによるアソシエーション、いいね機能、scopeや検索・N+1対策などの実践的なクエリ、RSpecによるテスト、パーシャルによるビューの共通化まで、SNSサービスを完成させながら学びます。

Railsの基本:MVCとルーティング

Ruby on Railsの仕組みを学びながら、SNSサービスのトップページを作成します。リクエスト・ルーティング・コントローラ・ビューの役割を理解しましょう。

  • MVC
  • ルーティング
  • コントローラ
  • ビュー
学習内容をみる (6演習)

ページの追加と共通レイアウト

ルーティングを書き換えてURLを設計し、Aboutページを自力で追加します。共通レイアウトのヘッダーと画像表示で見た目を整えましょう。

  • ルーティング
  • レイアウト
  • 静的ファイル
学習内容をみる (6演習)

ビューとインスタンス変数 プラス

ビューで変数を表示し、each で繰り返し、コントローラからインスタンス変数でデータを受け渡して投稿一覧ページを作ります。

  • マイグレーション
  • モデル
  • データベース
学習内容をみる (6演習)

投稿の削除とflashメッセージ プラス

DELETEメソッドで投稿を削除し、flashメッセージ・新しい順の並び替え・findの使い分けで実装を仕上げます。

  • CRUD
  • DELETE
  • flash
学習内容をみる (5演習)

resourcesとRESTfulルーティング プラス

RESTの考え方と resources による7つのルーティングの自動生成を学び、パスヘルパーに移行します。

  • REST
  • resources
  • パスヘルパー
学習内容をみる (6演習)

ユーザー機能(一覧・詳細) プラス

Userモデルとusersのルーティングを作り、一覧・詳細ページを実装します。投稿で学んだCRUDの流れを、ユーザーという別のリソースに応用します。

  • CRUD
  • resources
  • ユーザー管理
学習内容をみる (5演習)

ユーザー機能(登録・編集) プラス

登録フォームとcreateアクションでユーザー登録を実装し、バリデーション・編集機能・リンク整備でユーザー機能を仕上げます。

  • CRUD
  • バリデーション
  • フォーム
学習内容をみる (6演習)

画像アップロードとActive Storage プラス

file_fieldによる画像アップロードと、publicフォルダへの保存・表示を実装します。

  • 画像アップロード
  • フォーム
学習内容をみる (5演習)

認可とアクセス制御 プラス

登録後の自動ログインと、before_actionによるページ制限・本人チェックで、ログイン状態に応じたアクセス制御を実装します。

  • 認可
  • before_action
  • アクセス制御
学習内容をみる (5演習)

投稿とユーザーの関連付け プラス

postsテーブルにuseridを追加し、belongstoとhas_manyで投稿とユーザーを紐付けます。ログイン中のユーザーとして投稿できるようにします。

  • アソシエーション
  • 外部キー
  • belongs_to
  • has_many
学習内容をみる (5演習)

投稿者の表示と本人チェック プラス

投稿一覧に投稿者を表示し、自分の投稿だけ編集・削除できるよう制限します。dependent: :destroyでユーザー削除時の投稿も整理します。

  • アソシエーション
  • 認可
  • dependent: :destroy
学習内容をみる (5演習)

いいね機能とネストしたリソース プラス

likes中間テーブルとネストしたルーティングで、投稿へのいいね作成・取り消しといいねボタンを実装します。

  • 多対多
  • ネストルーティング
  • 中間テーブル
学習内容をみる (6演習)

いいねした投稿の一覧と集計 プラス

has_many :throughで「いいねした投稿」を取得して一覧ページを作り、いいね数の表示とN+1問題への対策を行います。

  • has_many :through
  • N+1問題
  • includes
学習内容をみる (4演習)

実務レベルまで プロ

RSpecでテストを書こう プロ

実務で広く使われるテストフレームワーク RSpec を学びます。セットアップからモデル spec・リクエスト spec の書き方、let や context による整理までを身につけましょう。

  • テスト
  • RSpec
学習内容をみる (7演習)

リファクタリングと次のステップ プロ

パーシャルによるビュー共通化、日時表示、set_◯◯によるコントローラ整理でアプリを仕上げ、次に学ぶ技術を紹介します。

  • パーシャル
  • リファクタリング
  • i18n
学習内容をみる (5演習)

実務のデータ設計と競合への対処 プロ

保存時の重複、途中失敗、同時編集を再現し、DB制約・トランザクション・楽観的ロックでPostAppのデータを守ります。

  • DB制約
  • トランザクション
  • 楽観的ロック
学習内容をみる (4演習)

件数が増えても使いやすい一覧 プロ

新着が増えても重複しないページング、更新に追従するキャッシュ、実行計画を見て足すインデックス、先読みで解消する N+1 を実装します。SQLの計測と合わせ、速さと正しさを両立させましょう。

  • ページング
  • キャッシュ
学習内容をみる (5演習)

権限と再設定をテストで守る プロ

他人による更新や所有者の偽装をリクエストテストで検出し、期限付きトークンの改ざん・期限切れ・再利用を確かめ、ログインの試行回数を制限します。

  • 認可テスト
  • パスワード再設定
  • レート制限
学習内容をみる (4演習)

メール通知と非同期処理 プロ

保存した通知からメールを作り、別プロセスへジョブを渡します。失敗した通知の再実行と、重複を防げる範囲まで考えましょう。

  • Action Mailer
  • Active Job
  • 再実行
学習内容をみる (4演習)

Active StorageとAction Textの実装 プロ

プロフィール画像をActive Storageへ移し、添付の検証と削除を実装します。投稿にはAction Textで詳しい説明を追加します。

  • Active Storage
  • Action Text
  • ファイル検証
学習内容をみる (4演習)

監視・バックアップ・公開前の検証 プロ

起動確認とDB確認を分け、バックアップからデータを読み戻し、ログの情報を制御します。CI、段階的なDB変更、公開後の確認と復旧も整理します。

  • ヘルスチェック
  • バックアップ
  • ログ
  • リリース
学習内容をみる (4演習)

オリジナルアプリを開発しよう 道場 プロ

コースで学んだことを活かして、AI エージェントと一緒に自分だけの Rails アプリケーションを自由に作りましょう。

  • 総合演習
  • オリジナルアプリ開発
  • Progate Code
学習内容をみる (1演習)