第3回まで無料

Ruby & Ruby on Rails 入門コース

Ruby の文法から、Rails の MVC・Active Record・フォームと認証・RSpec でのテスト・Hotwire・Docker と Kamal でのデプロイまで。全50レッスンで「ログインできる会員制のブログを作って公開できる」ところまで進みます。コード・コマンドの出力・テストの結果は、すべて Ruby 3.4.10・Rails 8.1.3.1 で実際に動かしたものです。

カリキュラム

全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ Ruby と Rails はブラウザ内で実行できないため、第2回で入れる Ruby 3.4 と、第9回で作る Rails 8.1 のアプリで試してください。

Chapter 1 — Ruby の文法(第1〜8回)

Rails に入る前に、Ruby そのものを書けるようにします。変数とメソッド・配列とハッシュ・ブロック・クラスとモジュール・例外まで、実際に ruby コマンドで動かしながら覚えます。

1

Ruby とは(すべてがオブジェクト)

Rails の土台になる Ruby を最初に見る。数値にもメソッドが生え、最後に評価した式が戻り値になるという 2 つの癖を押さえる。

Free
2

環境構築(rbenv・gem・bundler)

Ruby のバージョンをプロジェクトごとに固定する。gem と Bundler の違い、Gemfile と Gemfile.lock の役割、bundle exec を付ける理由。

Free
3

変数とメソッド(引数の渡し方)

ローカル変数・インスタンス変数・定数の違い。デフォルト引数、キーワード引数、可変長引数、? と ! で終わるメソッド名の慣習。

Free
4

条件分岐と繰り返し(unless と each)

if・unless・case/in の書き方と、for を使わず each や times で回す理由。後置 if とガード節で早めに抜ける書き方まで。

🔒 ベーシック
5

配列とハッシュ

配列の作り方と取り出し方、ハッシュのシンボルキー、ネストしたデータの掘り方。Rails の params がハッシュである話まで。

🔒 ベーシック
6

ブロックと Enumerable(map・select・reduce)

Rails のコードが短い理由であるブロックを掘る。do…end と { } の使い分け、map と each の違い、&:name の正体。

🔒 ベーシック
7

クラスとモジュール(継承と mixin)

attr_accessor・initialize・継承と super。モジュールを include して機能を混ぜる mixin が、Rails の concern そのものだという話まで。

🔒 ベーシック
8

例外と gem(rescue と Bundler)

begin/rescue/ensure と raise の書き方。例外クラスを自分で作る理由と、gem を Gemfile に足して bundle install するまでの流れ。

🔒 ベーシック

Chapter 2 — Rails を動かす(第9〜15回)

rails new でアプリを作り、ルーティング・コントローラ・ビューの 3 つがどうつながっているかを追います。この章を抜けると、URL を足して自分の画面を出せるようになります。

9

rails new とディレクトリ構成

アプリを 1 つ作って、どのフォルダに何が入るのかを地図にする。bin/ に置かれるコマンドと、最初から動く /up の話まで。

🔒 ベーシック
10

MVC とリクエストの流れ

URL を叩いてから HTML が返るまでを 1 本の線で追う。ルーター・コントローラ・ビューの役割分担と、ログの読み方。

🔒 ベーシック
11

ルーティング(routes.rb と名前付きルート)

get・root・動的セグメント・resources の書き方と、bin/rails routes の読み方。_path ヘルパーを使う理由まで。

🔒 ベーシック
12

コントローラとアクション

params の取り方、render と redirect_to の違い、before_action による共通処理、status コードの返し方。

🔒 ベーシック
13

ERB でビューを書く

<%= %> と <% %> の違い、自動エスケープと raw、条件分岐と繰り返し、link_to などのビューヘルパー。

🔒 ベーシック
14

レイアウトとパーシャル

全ページ共通の枠を作る layout と yield、content_for でタイトルを差し替える方法、_ で始まるパーシャルの切り出しと locals。

🔒 ベーシック
15

【実践】静的なページから動的なページへ

ここまでの 6 回を 1 本につなぐ。トップ・一覧・詳細・検索の 4 画面を、ルーティングからパーシャルまで通して作り直す。

🔒 ベーシック

Chapter 3 — Active Record(第16〜23回)

マイグレーションでテーブルを作り、モデル経由で読み書きします。バリデーション・関連・スコープまで進み、最後は N+1 をログで見つけて潰せるところまで行きます。

16

マイグレーションとスキーマ

テーブルを SQL ではなく Ruby で作る。rails generate model が置くファイル、db:migrate と db:rollback、schema.rb が正である理由。

🔒 ベーシック
17

モデルと CRUD(作る・読む・直す・消す)

new と create の違い、save の戻り値、update と destroy。db/seeds.rb で何度でも同じ状態に戻せるようにする。

🔒 ベーシック
18

クエリの書き方(where・order・limit)

検索条件の組み立てと、Active Record が遅延評価であること。to_sql で SQL を確かめ、pluck と exists? で無駄な読み込みを減らす。

🔒 ベーシック
19

バリデーション

保存する前に値を確かめる。presence・length・uniqueness・numericality と、errors の読み方。save が false を返すときに何が起きているか。

🔒 ベーシック
20

関連(belongs_to と has_many)

外部キーとモデルの関連を結ぶ。カテゴリと記事、記事とコメント。dependent の指定を忘れると何が残るか。

🔒 ベーシック
21

多対多(has_many through)

記事とタグのように「どちらも複数」の関係を中間テーブルで表す。through の書き方と、<< で付け替える操作。

🔒 ベーシック
22

スコープとコールバック

よく使う条件に名前を付ける scope、default_scope を避ける理由、保存の前後に差し込む before_save と after_create。

🔒 ベーシック
23

N+1 とインデックス

一覧ページが遅くなる二大原因を実測する。ログに並ぶ SQL の数を数え、includes と索引で減らす。

🔒 ベーシック

Chapter 4 — フォームと認証(第24〜31回)

form_with で入力を受け取り、Strong Parameters で受け付ける項目を絞ります。has_secure_password で認証を手で書いてから Devise に置き換え、最後は「自分の記事しか編集できない」ところまで作ります。

24

フォーム(form_with)

入力を受け取る画面を作る。resources で 7 本の URL を生やし、form_with が作る HTML と CSRF トークン、エラー時にフォームへ戻す形まで。

🔒 ベーシック
25

Strong Parameters

params をそのまま渡してはいけない理由。require と permit の意味、ネストした値と配列の許可、忘れたときに出るエラー。

🔒 ベーシック
26

CRUD を完成させる

7 つのアクションを最後まで書く。before_action でレコード取得をまとめ、edit・update・destroy と削除の確認を足す。

🔒 ベーシック
27

フラッシュとリダイレクト(PRG)

保存のあとにリダイレクトする理由、notice と alert、flash と flash.now の違い、二重送信を防ぐ形。

🔒 ベーシック
28

認証を手で書く(has_secure_password)

パスワードを平文で持たない仕組みを自分で作る。bcrypt、authenticate、session に何を入れるか。

🔒 ベーシック
29

Devise で認証を入れる

定番 gem に乗り換える。devise:install が出す設定、モジュールの選び方、生える 8 本のルートと current_user。

🔒 ベーシック
30

認可(ログイン必須と持ち主チェック)

認証と認可の違い。before_action でログインを要求し、自分の記事だけ編集できるようにする。params で user_id を受け取ってはいけない理由。

🔒 ベーシック
31

【実践】ユーザーごとの記事管理

ここまでを 1 本につなぐ。ログイン・記事の作成・コメント投稿・持ち主だけの編集を、通して動かして確かめる。

🔒 ベーシック

Chapter 5 — テストと品質(第32〜38回)

壊れたらすぐ気付けるように、Minitest と RSpec の両方を動かします。FactoryBot でテストデータを作り、リクエストスペックで画面ごと確かめ、RuboCop と Brakeman で書き方と穴を機械に見てもらいます。

Chapter 6 — 実務で使う(第39〜45回)

Hotwire で JavaScript をほとんど書かずに画面を部分更新し、Active Job で重い処理を後ろに回します。ファイルアップロードとメール、日本語化まで、業務で必ず出てくるものをそろえます。

Chapter 7 — 作って公開する(第46〜50回)

credentials と環境変数・アセットのプリコンパイル・Docker と Kamal で、作ったアプリを公開できる形にします。最後に Laravel との違いを並べて、次にどこへ進むかの地図を渡します。

全50レッスンを終えたら、次は索引と実行計画をくわしく学ぶ PostgreSQL 入門コース や、同じフルスタックフレームワークを別の言語で見る PHP & Laravel 入門コース、公開したあとの運用を扱う サービス公開と運用入門コース へ。メンバーシップで全コースが解放されます。