📝 本日のRails学習まとめ
本日もRailsについて学習を行いました。
昨日のアプリ再実装を経てRailsの基本理念やMVCについてさらに細かく学習しました。
✅ RailsにおけるDRY(Don't Repeat Yourself)
DRY原則とは?
同じコード・処理を繰り返さず、一か所にまとめて再利用性を高める設計原則です。Railsではこの考え方が強く反映されています。
活用例 | 使うもの | 目的 |
---|---|---|
ビューの共通化 |
partial (部分テンプレート) |
同じHTMLを複数ページで使いまわす |
コントローラの共通処理 | before_action |
重複した処理を1か所にまとめる |
複雑な処理の切り出し | サービスクラス・ヘルパー・モジュール | 処理を分離して見通しよく再利用可能にする |
📦 クラスとモジュールの使い分け
目的 | 使うもの | なぜ? |
---|---|---|
「もの・実体」を作りたい | クラス(class ) |
インスタンスを作れるから |
「機能・処理」をまとめたい | モジュール(module ) |
他のクラスに機能として使い回せるから |
名前の衝突を避けたい | モジュールの中にクラス | グループ名で名前を整理できるから |
💬 たとえ話で理解する:
クラス = たこ焼き器(たこ焼き=実体を焼く)
モジュール = たこ焼きソース(あとから追加できる便利な味付け)
🧰 Helper・モジュール・サービスクラスの使い分け
用途 | 特徴 |
---|---|
ヘルパー | ビュー専用。テンプレート内で使う簡単なメソッド(例:日付の整形など) |
モジュール | 複数クラス間で共通の処理をまとめる。include やextend で導入 |
サービスクラス | ビジネスロジック(複雑な処理)をモデルやコントローラから分離 |
🖼️ JSONとレンダリング
render json: @user のように、Railsでは簡単にJSON形式のデータ出力が可能。
非同期通信でよく使われる。
JSONはデータの受け渡しに最適な軽量フォーマット。
🔐 セッションとクッキー
用語 | 説明 |
---|---|
セッション(session) | 一時的なデータ保存(サーバーサイド管理)。ログイン情報など |
クッキー(cookie) | ブラウザ側に保存される小さなデータ。次回アクセス時にも利用できる |
セッションの例としてはショッピングサイトならどこでも実装している「買い物かご」がこれにあたる。
クッキーには行動履歴などが含まれていて、クッキーの情報からウェブサイトの広告を表示したりすることもある。
🧠 ORMとSQLの違い
用語 | 説明 |
---|---|
ORM(ActiveRecord) | RubyコードでDB操作ができる。SQLを直接書かなくてもOK。例:User.find(1)
|
SQL | データベースと直接やり取りする言語。Railsでも必要に応じて書ける(find_by_sql など) |
🗂️ SQLの3種類(+1)
分類 | 略語 | 目的 | 例 |
---|---|---|---|
定義 | DDL | テーブルやカラムを作成・削除 |
CREATE , DROP , ALTER
|
操作 | DML | データの挿入・更新・削除 |
INSERT , UPDATE , DELETE
|
制御 | DCL | アクセス権の制御 |
GRANT , REVOKE
|
取得 | DQL | データの検索 |
SELECT (厳密にはDMLに含めないことも) |
🔍 find_by_sqlとは?
ActiveRecordのメソッドで、生のSQLを実行できる。
例:
Tweet.find_by_sql("SELECT * FROM tweets WHERE text LIKE '%Rails%'")
🔚 まとめ
RailsはDRY原則に基づいた構造化を目指すフレームワーク。
ヘルパー、モジュール、サービスクラスなどを適切に使い分けることで、見通しが良く保守しやすいコードになる。
ORMを使えばSQLを直接書かなくても基本操作ができるが、SQLの基礎知識も重要!