こんにちは。
35歳未経験からWebエンジニアを目指し、日々ステートレスな自分の脳みそと毎日戦っている者です。
この記事では、Railsの基礎からユーザー登録機能までを分かりやすく解説します!
結論(先にシンプルに)
Railsの仕組みを一言でいうと、「超優秀なレストランのオペレーション」です!
データベースは「冷蔵庫」、ビュー(画面表示)は「盛り付け」、そしてそれらを取り仕切るのが「コントローラ-(店長)」です 。
これだけ頭の片隅に置いて、サクサク見ていきましょう!
本編
1. Rubyの正体:「すべてがオブジェクト」って何?
Railsの土台であるRubyは、「すべてがオブジェクト」という思想で作られています 。
オブジェクトとは、ズバリ「データ(属性)」と「処理(メソッド)」をひとまとめにした便利な部品のことです 。
例えるなら: 「スマホ」です。
データ(属性) = 画面サイズ、バッテリー残量、本体の色
処理(メソッド) = 電話をかける、写真を撮る、アプリを開く
Rubyの世界では、文字や数字もすべてこの「スマホ」のように便利な機能(メソッド)を持った部品として扱われます 。だから直感的に操作しやすいんですね。
2. MVCアーキテクチャ:レストランの最強チーム
Webアプリの基本構成である「MVC(Model-View-Controller)」。これがRailsの心臓部です 。
役割を3つに分けることで、効率よく開発する設計手法(アーキテクチャ)のことです 。
【図解】MVC = レストランの業務フロー
お客さん(ブラウザからのアクセス)
│
▼
[ ルーティング (routes.rb) ] = 案内係
「ご案内します!担当の者を呼びますね!」
│
▼
[ Controller (C) ] = 店長(全体の司令塔)
「シェフ、〇〇の食材を出して!ウェイター、綺麗に盛り付けて!」
│
├──▶ [ Model (M) ] = シェフと冷蔵庫(DBとのやり取り)
│ 「データベース(冷蔵庫)からデータを取り出します!」
│
└──▶ [ View (V) ] = ウェイター(画面表示)
「HTMLにデータを埋め込んで(ERB)、綺麗に表示します!」
Railsでは、標準で「開発(development)」「テスト(test)」「本番(production)」の3つの環境(店舗)が用意されており、状況に応じて自動で切り替わってくれます 。至れり尽くせりですね!
3. データベースとActive Record:敏腕通訳と関所
データベースを直接操作するには「SQL」という別の言語が必要ですが、Active Record という機能を使えば、Rubyのコードだけで直感的にデータベースを操作できます 。いわば「SQL通訳の秘書」です。
また、データベース周りには重要な機能がいくつかあります。
1.マイグレーション
データベースの設計図(建物の増改築履歴)を管理します 。
2.バリデーション
「パスワードは⚪︎文字以上!」「メアドは正しい形式で!」というように
変なデータが入らないように弾く「関所の門番」です 。
3.has_secure_password
パスワードをそのまま保存せず、暗号化(ハッシュ化)して
安全に守ってくれる凄腕の金庫番メソッドです 。
4. フロントエンドとDRY原則:ハンコで手間を省く
画面表示(View)では、HTMLの中にRubyを埋め込める「ERB」を使います 。
ここで大事なのが「DRY原則(Don't Repeat Yourself:同じことを繰り返すな)」です 。
例えるなら: 毎回手書きで会社の住所を書くのではなく、「ゴム印(スタンプ)」を作ってポンポン押すイメージ。
Railsでは、共通のヘッダーなどを「レイアウト」や「パーシャル(部分テンプレート)」として切り出すことで、このゴム印を作ります 。
5. TDD(テスト駆動開発)とデバッグ:試験ロボットを雇う
Railsでは自動化テストが強力です。「red(失敗) → green(成功) → REFACTOR(コード整理)」のサイクルを回すことで、直したはずのバグが復活する「回帰バグ」を防ぎます 。
これは、お客様に料理を出す前に「自動で注文を確認してくれるロボット」を雇うようなものです 。
エラーが出たら、コンソールや debug メソッドを使って、一時停止しながら原因を探りましょう 。
6. ユーザー登録機能:Webの受付窓口
ここまでの知識を総動員して作るのがユーザー登録機能です。
form_with を使って、Active Record(DB)と連携した入力フォーム(受付票)を作ります 。
登録成功時は、リダイレクトと共に flash で「登録完了しました!」という1回限りの一時メッセージを表示します 。
失敗した時は、エラーメッセージと共にもう一度入力フォームを表示(再描画)して、お客さんに直してもらいます 。
おまけとして、「Gravatar」という外部サービスと連携すれば、メールアドレスをもとにサクッとプロフィールアイコンを表示させることも可能です 。
まとめ
ここまでのポイントを3行でまとめます。
・オブジェクト は「データと処理をまとめた便利な部品」である 。
・MVC は「店長(C)・シェフ(M)・ウェイター(V)」の最強レストラン体制 。
・Active Record はRuby語をDB語に翻訳してくれる敏腕秘書。
たくさんの用語が出てきて最初は混乱するかもしれません。
ですが、まずは役割をイメージできればRailsはとっても親切なフレームワークだと感じます!
皆様の学習のお力になれたら幸いです。
次回はRails後編をお届けします!
PRUMのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
コーポレートサイト
エンジニアの方に役立つ記事をまとめたサイトも運営しています。もしご興味あれば覗いてみてくださいね。
エンジニアに役立つ記事サイト