- 発売日:2024/12/07
- 出版社:技術評論社
- ISBN/JAN:9784297145989
目次
■導入編
●第1章 イントロダクション
◯1.1 Railsというフレームワーク
1.1.1 アプリケーションフレームワークとは?
1.1.2 フレームワーク導入の利点
1.1.3 Rubyで利用可能なフレームワーク
◯1.2 Railsを利用するための環境設定
1.2.1 Railsプログラミングに必要なソフトウェア
1.2.2 Windowsにおける環境設定の手順
1.2.3 macOSにおける環境設定の手順
1.2.4 Visual Studio Codeのインストール(Windows/macOS共通)
●第2章 Ruby on Railsの基本
◯2.1 アプリの作成
◯2.2 コントローラーの基本
2.2.1 コントローラークラスの作成
2.2.2 コントローラークラスの基本構文
2.2.3 ルーティングの基礎を理解する
2.2.4 サンプルの実行
2.2.5 補足:コントローラーの命名規則
◯2.3 ビューの基本
2.3.1 テンプレート変数の設定
2.3.2 テンプレートファイルの作成
2.3.3 サンプルの実行
2.3.4 共通レイアウトの適用
2.3.5 補足:コメント構文
◯2.4 モデルの基本
2.4.1 Active Recordとは?
2.4.2 データベース接続の設定
2.4.3 モデルクラスの作成
2.4.4 マイグレーションファイルによるテーブルの作成
2.4.5 フィクスチャによるテストデータの準備
2.4.6 補足:データベースの確認
2.4.7 データ取得の基本
2.4.8 SQL命令の確認
2.4.9 補足:デバッグの基本
◯2.5 Railsの設定情報
2.5.1 主な設定ファイルの配置
2.5.2 利用可能な主な設定パラメーター
2.5.3 アプリ固有の設定を定義する
●第3章 Scaffolding機能によるRails開発の基礎
◯3.1 Scaffolding 機能によるアプリケーション開発
3.1.1 Scaffolding 開発の手順
3.1.2 自動生成されたルートを確認する ― resourcesメソッド
◯3.2 一覧画面の作成(indexアクション)
3.2.1 indexアクションメソッド
3.2.2 index.html.erbテンプレート
◯3.3 詳細画面の作成(showアクション)
3.3.1 showアクションメソッド
3.3.2 show.html.erbテンプレート
◯3.4 新規登録画面の作成(new / createアクション)
3.4.1 new.html.erbテンプレートファイル
3.4.2 new / createアクションメソッド
◯3.5 編集画面の作成(edit / updateアクション)
3.5.1 edit / updateアクションメソッド
3.5.2 edit.html.erbテンプレートファイル
◯3.6 削除機能の確認(destroyアクション)
◯3.7 準備:基本編で使用するプロジェクト
3.7.1 サンプルプロジェクトの準備方法
3.7.2 データベースの構造
■基本編
●第4章 ビュー開発
◯4.1 フォーム関連のビューヘルパー
4.1.1 フォーム生成の基礎
4.1.2 input、textarea要素を生成する ― xxxxx _field、text_area、radio_button、check_box メソッド
4.1.3 選択ボックス/リストボックスを生成する ― xxxxx _selectメソッド
4.1.4 曜日の選択ボックスを生成する ― weekday_selectメソッド
4.1.5 データベースの情報をもとにラジオボタン/チェックボックスを生成する ― collection_radio_buttons/collection_check_boxes メソッド
4.1.6 form_with ブロックの中で異なるモデルを編集する ― fields_forメソッド
◯4.2 文字列/数値関連のビューヘルパー
4.2.1 HTMLエスケープを無効化する ― rawメソッド
4.2.2 改行文字をp/br要素で置き換える ― simple_formatメソッド
4.2.3 文字列を指定桁で切り捨てる ― truncateメソッド
4.2.4 文字列から特定の部分のみを抜粋する ― excerptメソッド
4.2.5 テーブルやリストの背景色をn行おきに変更する ― cycleメソッド
4.2.6 特定のスタイルクラスを付与する ― class_namesメソッド
4.2.7 特定のキーワードをハイライト表示する ― highlightメソッド
4.2.8 文字列から要素を除去する ― sanitizeメソッド
4.2.9 数値をさまざまな形式で加工する ― number_xxxxxメソッド
◯4.3 リンク関連のビューヘルパー
4.3.1 ハイパーリンクを生成する ― link_toメソッド
4.3.2 ルート定義から動的にURL を生成する ― url_forメソッド
4.3.3 条件に応じてリンクを生成する ― link_to_if / link_to_unlessメソッド
4.3.4 現在のページの場合はリンクを無効にする ― link_to_unless_currentメソッド
4.3.5 メールアドレスへのリンクを生成する ― mail_toメソッド
◯4.4 その他のビューヘルパー
4.4.1 構造化データをダンプ出力する ― debugメソッド
4.4.2 スクリプトブロックの中に出力コードを埋め込む ― concatメソッド
4.4.3 出力結果を変数に格納する ― captureメソッド
4.4.4 サイトのFavicon を定義する ― favicon_link_tagメソッド
◯4.5 ビューヘルパーの自作
4.5.1 シンプルなビューヘルパー
4.5.2 HTML文字列を返すビューヘルパー
4.5.3 本体を持つビューヘルパー
◯4.6 アプリ共通のデザインを定義する ― レイアウト
4.6.1 レイアウトを適用するさまざまな方法
4.6.2 ページ単位でタイトルを変更する
4.6.3 レイアウトに複数のコンテンツ領域を設置する
4.6.4 レイアウトを入れ子に配置する
◯4.7 テンプレートの一部をページ間で共有する ― 部分テンプレート
4.7.1 部分テンプレートの配置
4.7.2 部分テンプレートが受け取る引数を宣言する
4.7.3 部分テンプレートにレイアウトを適用する ― パーシャルレイアウト
4.7.4 コレクションに繰り返し部分テンプレートを適用する ― collectionオプション
●第5章 モデル開発
◯5.1 データ取得の基本 ― findメソッド
5.1.1 主キー列による検索
5.1.2 任意のキー列による検索 ― find_byメソッド
◯5.2 複雑な条件で検索を実行する ― クエリメソッド
5.2.1 クエリメソッドの基礎
5.2.2 基本的な条件式を設定する ― whereメソッド
5.2.3 プレイスホルダーによる条件式の生成 ― whereメソッド(2)
5.2.4 否定の条件式を表す ― notメソッド
5.2.5 データを並べ替える ― orderメソッド
5.2.6 取得列を明示的に指定する ― selectメソッド
5.2.7 重複のないレコードを取得する ― distinctメソッド
5.2.8 特定範囲のレコードだけを取得する ― limit / offsetメソッド
5.2.9 データを集計する ― groupメソッド
5.2.10 集計結果をもとにデータを絞り込む ― havingメソッド
5.2.11 条件句を破壊的に代入する ― where!メソッド
5.2.12 クエリメソッドによる条件式を除去する ― unscopeメソッド
5.2.13 空の結果セットを取得する ― noneメソッド
◯5.3 データ取得のためのその他のメソッド
5.3.1 指定列の配列を取得する ― pluckメソッド
5.3.2 データの存在を確認する ― exists?メソッド
5.3.3 よく利用する条件句をあらかじめ準備する ― 名前付きスコープ
5.3.4 既定のスコープを定義する ― default_scopeメソッド
5.3.5 検索結果の行数を取得する ― countメソッド
5.3.6 特定条件に合致するレコードの平均や最大/最小を求める
5.3.7 生のSQL命令を直接指定する ― find_by_sqlメソッド
5.3.8 SQL命令を非同期に実行する ― load_asyncメソッド
5.3.9 補足:スロークエリを監視する
◯5.4 レコードの登録/更新/削除
5.4.1 単一のレコードを登録/更新する ― create/updateメソッド
5.4.2 複数のレコードをまとめて挿入する ― insert_allメソッド
5.4.3 複数のレコードをまとめて更新する ― update_allメソッド
5.4.4 入力値を正規化する ― normalizes メソッド
5.4.5 レコードを削除する ― destroy / deleteメソッド
5.4.6 複数のレコードをまとめて削除する ― destroy_allメソッド
5.4.7 トランザクション処理を実装する ― transactionメソッド
5.4.8 オプティミスティック同時実行制御
5.4.9 列挙型のフィールドを定義する ― Active Record enums
5.4.10 暗号化した値を保存する
5.4.11 補足:その他の更新系メソッド
◯5.5 検証機能の実装
5.5.1 Active Modelで利用できる検証機能
5.5.2 検証機能の基本
5.5.3 その他の検証クラス
5.5.4 検証クラス共通のパラメーター
5.5.5 自作検証クラスの定義
5.5.6 データベースに関連付かないモデルを定義する ― ActiveModel::Modelモジュール
◯5.6 アソシエーションによる複数テーブルの処理
5.6.1 リレーションシップと命名規則
5.6.2 参照元テーブルから参照先テーブルの情報にアクセスする ― belongs_toアソシエーション
5.6.3 1:nの関係を表現する ― has_manyアソシエーション
5.6.4 1:1の関係を表現する ― has_oneアソシエーション
5.6.5 m:nの関係を表現する(1) ― has_and_belongs_to_manyアソシエーション
5.6.6 m:nの関係を表現する(2) ― has_many(through)アソシエーション
5.6.7 アソシエーションによって追加されるメソッド
5.6.8 アソシエーションで利用できるオプション
5.6.9 複数のモデルをまとめて管理する ― 単一テーブル継承
5.6.10 継承関係にないモデル同士をまとめて管理する ― Delegated Types
5.6.11 アソシエーションで関連先の存在を確認する ― missingメソッド
5.6.12 関連するモデルを取得する ― extract_associatedメソッド
5.6.13 関連するモデルと結合する ― joinsメソッド
5.6.14 関連するモデルと結合する(左外部結合) ― left_outer_joinsメソッド
5.6.15 関連するモデルをまとめて取得する ― includesメソッド
◯5.7 コールバック
5.7.1 利用可能なコールバックと実行タイミング
5.7.2 コールバック実装の基本
5.7.3 コールバックのさまざまな定義方法
◯5.8 マイグレーション
5.8.1 マイグレーションのしくみ
5.8.2 マイグレーションファイルの構造
5.8.3 マイグレーションファイルの作成
5.8.4 マイグレーションファイルで利用できる主なメソッド
5.8.5 マイグレーションファイルの実行
5.8.6 リバーシブルなマイグレーションファイル
5.8.7 スキーマファイルによるデータベースの再構築
5.8.8 データの初期化
5.8.9 複数データベースへの対応
●第6章 コントローラー開発
◯6.1 リクエスト情報
6.1.1 リクエスト情報を取得する ― paramsメソッド
6.1.2 マスアサインメント脆弱性を回避する ― StrongParameters
6.1.3 リクエストヘッダーを取得する ― headersメソッド
6.1.4 リクエストヘッダーやサーバー環境変数を取得するための専用メソッド
◯6.2 レスポンスの操作
6.2.1 テンプレートファイルを呼び出す ― renderメソッド
6.2.2 空のコンテンツを出力する ― headメソッド
6.2.3 処理をリダイレクトする ― redirect_toメソッド
6.2.4 ファイルの内容を出力する ― send_fileメソッド
6.2.5 任意のデータを送出する ― send_dataメソッド
6.2.6 レスポンスヘッダーを取得/設定する
6.2.7 補足:ログを出力する ― loggerオブジェクト
◯6.3 HTML以外のレスポンス処理
6.3.1 モデルの内容をJSON / XML形式で出力する
6.3.2 テンプレート経由でJSON / XMLデータを生成する ― JBuilder / Builder
◯6.4 状態管理
6.4.1 クッキーを取得/設定する ― cookiesメソッド
6.4.2 永続化クッキー/暗号化クッキー
6.4.3 セッションを利用する ― sessionメソッド
6.4.4 フラッシュを利用する ― flashメソッド
◯6.5 フィルター
6.5.1 アクションの事前/事後に処理を実行する ― before / afterフィルター
6.5.2 アクションの前後で処理を実行する ― aroundフィルター
6.5.3 フィルターの適用範囲をカスタマイズする
6.5.4 例:フィルターによるフォーム認証の実装
◯6.6 アプリ共通の挙動を定義する ― Applicationコントローラー
6.6.1 共通フィルターの定義 ― ログイン機能の実装
6.6.2 共通的な例外処理をまとめる ― rescue_fromメソッド
6.6.3 クロスサイトリクエストフォージェリ対策を行う ― protect_from_forgeryメソッド
6.6.4 デバイス単位でビューを振り分ける ― Action Pack Variants
6.6.5 独自のフラッシュメッセージを追加する ― add_flash_typesメソッド
6.6.6 補足:共通ロジックをモジュールにまとめる ― concernsフォルダー
■応用編
●第7章 ルーティング
◯7.1 RESTfulインターフェイスとは?
7.1.1 RESTfulインターフェイスを定義する ― resourcesメソッド
7.1.2 単一のリソースを定義する ― resourceメソッド
7.1.3 補足:ルート定義を確認する
◯7.2 RESTfulインターフェイスのカスタマイズ
7.2.1 ルートパラメーターの制約条件 ― constraintsオプション
7.2.2 より複雑な制約条件の設定 ― 制約クラスの定義
7.2.3 format パラメーターを除去する ― formatオプション
7.2.4 コントローラークラス/Urlヘルパーの名前を修正する ― controllers / asオプション
7.2.5 モジュール配下のコントローラーをマッピングする ― namespace / scopeブロック
7.2.6 RESTfulインターフェイスに自前のアクションを追加する ― collection / memberブロック
7.2.7 RESTfulインターフェイスのアクションを無効化する ― only / exceptオプション
7.2.8 階層構造を持ったリソースを表現する ― resourcesメソッドのネスト
7.2.9 リソースの「浅い」ネストを表現する ― shallowオプション
7.2.10 ルート定義を再利用可能にする ― concernメソッド&concernsオプション
◯7.3 非RESTfulなルートの定義
7.3.1 非RESTfulルートの基本 ― matchメソッド
7.3.2 さまざまな非RESTfulルートの表現
7.3.3 トップページへのマッピングを定義する ― rootメソッド
7.3.4 カスタムのUrlヘルパーを生成する
7.3.5 ルート定義ファイルを分離する
●第8章 テスト
◯8.1 テストの基本
8.1.1 Railsアプリのテスト
8.1.2 テストの準備
◯8.2 Unitテスト
8.2.1 Unitテストの基本
8.2.2 テストの実行
8.2.3 Unitテストの具体例
8.2.4 テストの準備と後始末 ― setup / teardownメソッド
8.2.5 補足:テストを並列に実行する ― Parallelテスト
◯8.3 Functionalテスト
8.3.1 Functionalテストの基本
8.3.2 Functionalテストで利用できるAssertionメソッド
◯8.4 Integrationテスト
◯8.5 Systemテスト
8.5.1 Systemテストの準備
8.5.2 Systemテストの作成
8.5.3 Systemテストの実行
●第9章 フロントエンド開発
◯9.1 クライアントサイドスクリプトの基本構成
9.1.1 フロントエンド開発のキーワード
9.1.2 フロントエンド開発に関わるプロジェクト作成時のオプション
◯9.2 アセットパイプライン ― Propshaft
9.2.1 設定ファイル
9.2.2 アセットのインクルード
9.2.3 アセットの事前処理
◯9.3 Import Maps
9.3.1 モジュールの実体を登録する
9.3.2 JavaScript のコードを実装する
◯9.4 バンドラーの活用
9.4.1 バンドラー利用の準備
9.4.2 バンドラーによる実装
◯9.5 CSSプロセッサー
9.5.1 CSSプロジェクトの実行
9.5.2 スタイルのカスタマイズ
●第10章 コンポーネント
◯10.1 電子メールを送信する ― Action Mailer
10.1.1 Action Mailerを利用する準備
10.1.2 メール送信の基本
10.1.3 複数フォーマットでのメール配信
10.1.4 メールをプレビューする
10.1.5 メール送信前に任意の処理を実行する ― インターセプター
10.1.6 メーラーのUnitテスト
◯10.2 時間のかかる処理を実行する ― Active Job
10.2.1 Active Jobを利用する準備
10.2.2 ジョブ実行の基本
10.2.3 ジョブ実行のカスタマイズ
10.2.4 ジョブの登録/実行の前後で処理を実行する ― コールバック
10.2.5 ジョブのUnitテスト
◯10.3 ファイルをアップロードする ― Active Storage
10.3.1 Active Storageを利用する準備
10.3.2 ストレージ利用の基本
10.3.3 さまざまなファイル操作
10.3.4 クラウドサービスへの移行
◯10.4 リッチなテキストエディターを実装する ― Action Text
10.4.1 Action Text利用の準備
10.4.2 Action Text利用の基本
◯10.5 受信メールの処理を自動化する ― Action Mailbox
10.5.1 Action Mailboxの構成
10.5.2 Action Mailboxを利用する準備
10.5.3 メールボックス実行の基本
10.5.4 補足:本番環境への移行
◯10.6 WebSocket通信を実装する ― Action Cable
10.6.1 WebSocketの役割
10.6.2 Action Cableの構成
10.6.3 Action Cable利用の基本
10.6.4 複数のストリームでトピックを分割する
10.6.5 Action Cableの設定
●第11章 Railsの高度な機能
◯11.1 キャッシュ機能の実装
11.1.1 キャッシュを利用する場合の準備
11.1.2 フラグメントキャッシュの基本
11.1.3 フラグメントキャッシュを複数ページで共有する
11.1.4 モデルをもとにキャッシュキーを決める
11.1.5 指定の条件に応じてキャッシュを有効にする
11.1.6 キャッシュの格納先を変更する
◯11.2 アプリの国際化対応 ― I18n API
11.2.1 国際化対応アプリの全体像
11.2.2 国際化対応の基本的な手順
11.2.3 ロケールを動的に設定する方法 ― ApplicationController
11.2.4 辞書ファイルのさまざまな配置と記法
11.2.5 Rails 標準の翻訳情報を追加する
11.2.6 ビューヘルパーtの各種オプション
◯11.3 Hotwire
11.3.1 Hotwireの基本
11.3.2 ページの部分更新を有効化する
11.3.3 コンテンツの断片を挿入/置換/削除する
◯11.4 本番環境への移行
11.4.1 GitHubリポジトリの準備
11.4.2 ローカル環境での準備
11.4.3 Render.com側の準備
●第1章 イントロダクション
◯1.1 Railsというフレームワーク
1.1.1 アプリケーションフレームワークとは?
1.1.2 フレームワーク導入の利点
1.1.3 Rubyで利用可能なフレームワーク
◯1.2 Railsを利用するための環境設定
1.2.1 Railsプログラミングに必要なソフトウェア
1.2.2 Windowsにおける環境設定の手順
1.2.3 macOSにおける環境設定の手順
1.2.4 Visual Studio Codeのインストール(Windows/macOS共通)
●第2章 Ruby on Railsの基本
◯2.1 アプリの作成
◯2.2 コントローラーの基本
2.2.1 コントローラークラスの作成
2.2.2 コントローラークラスの基本構文
2.2.3 ルーティングの基礎を理解する
2.2.4 サンプルの実行
2.2.5 補足:コントローラーの命名規則
◯2.3 ビューの基本
2.3.1 テンプレート変数の設定
2.3.2 テンプレートファイルの作成
2.3.3 サンプルの実行
2.3.4 共通レイアウトの適用
2.3.5 補足:コメント構文
◯2.4 モデルの基本
2.4.1 Active Recordとは?
2.4.2 データベース接続の設定
2.4.3 モデルクラスの作成
2.4.4 マイグレーションファイルによるテーブルの作成
2.4.5 フィクスチャによるテストデータの準備
2.4.6 補足:データベースの確認
2.4.7 データ取得の基本
2.4.8 SQL命令の確認
2.4.9 補足:デバッグの基本
◯2.5 Railsの設定情報
2.5.1 主な設定ファイルの配置
2.5.2 利用可能な主な設定パラメーター
2.5.3 アプリ固有の設定を定義する
●第3章 Scaffolding機能によるRails開発の基礎
◯3.1 Scaffolding 機能によるアプリケーション開発
3.1.1 Scaffolding 開発の手順
3.1.2 自動生成されたルートを確認する ― resourcesメソッド
◯3.2 一覧画面の作成(indexアクション)
3.2.1 indexアクションメソッド
3.2.2 index.html.erbテンプレート
◯3.3 詳細画面の作成(showアクション)
3.3.1 showアクションメソッド
3.3.2 show.html.erbテンプレート
◯3.4 新規登録画面の作成(new / createアクション)
3.4.1 new.html.erbテンプレートファイル
3.4.2 new / createアクションメソッド
◯3.5 編集画面の作成(edit / updateアクション)
3.5.1 edit / updateアクションメソッド
3.5.2 edit.html.erbテンプレートファイル
◯3.6 削除機能の確認(destroyアクション)
◯3.7 準備:基本編で使用するプロジェクト
3.7.1 サンプルプロジェクトの準備方法
3.7.2 データベースの構造
■基本編
●第4章 ビュー開発
◯4.1 フォーム関連のビューヘルパー
4.1.1 フォーム生成の基礎
4.1.2 input、textarea要素を生成する ― xxxxx _field、text_area、radio_button、check_box メソッド
4.1.3 選択ボックス/リストボックスを生成する ― xxxxx _selectメソッド
4.1.4 曜日の選択ボックスを生成する ― weekday_selectメソッド
4.1.5 データベースの情報をもとにラジオボタン/チェックボックスを生成する ― collection_radio_buttons/collection_check_boxes メソッド
4.1.6 form_with ブロックの中で異なるモデルを編集する ― fields_forメソッド
◯4.2 文字列/数値関連のビューヘルパー
4.2.1 HTMLエスケープを無効化する ― rawメソッド
4.2.2 改行文字をp/br要素で置き換える ― simple_formatメソッド
4.2.3 文字列を指定桁で切り捨てる ― truncateメソッド
4.2.4 文字列から特定の部分のみを抜粋する ― excerptメソッド
4.2.5 テーブルやリストの背景色をn行おきに変更する ― cycleメソッド
4.2.6 特定のスタイルクラスを付与する ― class_namesメソッド
4.2.7 特定のキーワードをハイライト表示する ― highlightメソッド
4.2.8 文字列から要素を除去する ― sanitizeメソッド
4.2.9 数値をさまざまな形式で加工する ― number_xxxxxメソッド
◯4.3 リンク関連のビューヘルパー
4.3.1 ハイパーリンクを生成する ― link_toメソッド
4.3.2 ルート定義から動的にURL を生成する ― url_forメソッド
4.3.3 条件に応じてリンクを生成する ― link_to_if / link_to_unlessメソッド
4.3.4 現在のページの場合はリンクを無効にする ― link_to_unless_currentメソッド
4.3.5 メールアドレスへのリンクを生成する ― mail_toメソッド
◯4.4 その他のビューヘルパー
4.4.1 構造化データをダンプ出力する ― debugメソッド
4.4.2 スクリプトブロックの中に出力コードを埋め込む ― concatメソッド
4.4.3 出力結果を変数に格納する ― captureメソッド
4.4.4 サイトのFavicon を定義する ― favicon_link_tagメソッド
◯4.5 ビューヘルパーの自作
4.5.1 シンプルなビューヘルパー
4.5.2 HTML文字列を返すビューヘルパー
4.5.3 本体を持つビューヘルパー
◯4.6 アプリ共通のデザインを定義する ― レイアウト
4.6.1 レイアウトを適用するさまざまな方法
4.6.2 ページ単位でタイトルを変更する
4.6.3 レイアウトに複数のコンテンツ領域を設置する
4.6.4 レイアウトを入れ子に配置する
◯4.7 テンプレートの一部をページ間で共有する ― 部分テンプレート
4.7.1 部分テンプレートの配置
4.7.2 部分テンプレートが受け取る引数を宣言する
4.7.3 部分テンプレートにレイアウトを適用する ― パーシャルレイアウト
4.7.4 コレクションに繰り返し部分テンプレートを適用する ― collectionオプション
●第5章 モデル開発
◯5.1 データ取得の基本 ― findメソッド
5.1.1 主キー列による検索
5.1.2 任意のキー列による検索 ― find_byメソッド
◯5.2 複雑な条件で検索を実行する ― クエリメソッド
5.2.1 クエリメソッドの基礎
5.2.2 基本的な条件式を設定する ― whereメソッド
5.2.3 プレイスホルダーによる条件式の生成 ― whereメソッド(2)
5.2.4 否定の条件式を表す ― notメソッド
5.2.5 データを並べ替える ― orderメソッド
5.2.6 取得列を明示的に指定する ― selectメソッド
5.2.7 重複のないレコードを取得する ― distinctメソッド
5.2.8 特定範囲のレコードだけを取得する ― limit / offsetメソッド
5.2.9 データを集計する ― groupメソッド
5.2.10 集計結果をもとにデータを絞り込む ― havingメソッド
5.2.11 条件句を破壊的に代入する ― where!メソッド
5.2.12 クエリメソッドによる条件式を除去する ― unscopeメソッド
5.2.13 空の結果セットを取得する ― noneメソッド
◯5.3 データ取得のためのその他のメソッド
5.3.1 指定列の配列を取得する ― pluckメソッド
5.3.2 データの存在を確認する ― exists?メソッド
5.3.3 よく利用する条件句をあらかじめ準備する ― 名前付きスコープ
5.3.4 既定のスコープを定義する ― default_scopeメソッド
5.3.5 検索結果の行数を取得する ― countメソッド
5.3.6 特定条件に合致するレコードの平均や最大/最小を求める
5.3.7 生のSQL命令を直接指定する ― find_by_sqlメソッド
5.3.8 SQL命令を非同期に実行する ― load_asyncメソッド
5.3.9 補足:スロークエリを監視する
◯5.4 レコードの登録/更新/削除
5.4.1 単一のレコードを登録/更新する ― create/updateメソッド
5.4.2 複数のレコードをまとめて挿入する ― insert_allメソッド
5.4.3 複数のレコードをまとめて更新する ― update_allメソッド
5.4.4 入力値を正規化する ― normalizes メソッド
5.4.5 レコードを削除する ― destroy / deleteメソッド
5.4.6 複数のレコードをまとめて削除する ― destroy_allメソッド
5.4.7 トランザクション処理を実装する ― transactionメソッド
5.4.8 オプティミスティック同時実行制御
5.4.9 列挙型のフィールドを定義する ― Active Record enums
5.4.10 暗号化した値を保存する
5.4.11 補足:その他の更新系メソッド
◯5.5 検証機能の実装
5.5.1 Active Modelで利用できる検証機能
5.5.2 検証機能の基本
5.5.3 その他の検証クラス
5.5.4 検証クラス共通のパラメーター
5.5.5 自作検証クラスの定義
5.5.6 データベースに関連付かないモデルを定義する ― ActiveModel::Modelモジュール
◯5.6 アソシエーションによる複数テーブルの処理
5.6.1 リレーションシップと命名規則
5.6.2 参照元テーブルから参照先テーブルの情報にアクセスする ― belongs_toアソシエーション
5.6.3 1:nの関係を表現する ― has_manyアソシエーション
5.6.4 1:1の関係を表現する ― has_oneアソシエーション
5.6.5 m:nの関係を表現する(1) ― has_and_belongs_to_manyアソシエーション
5.6.6 m:nの関係を表現する(2) ― has_many(through)アソシエーション
5.6.7 アソシエーションによって追加されるメソッド
5.6.8 アソシエーションで利用できるオプション
5.6.9 複数のモデルをまとめて管理する ― 単一テーブル継承
5.6.10 継承関係にないモデル同士をまとめて管理する ― Delegated Types
5.6.11 アソシエーションで関連先の存在を確認する ― missingメソッド
5.6.12 関連するモデルを取得する ― extract_associatedメソッド
5.6.13 関連するモデルと結合する ― joinsメソッド
5.6.14 関連するモデルと結合する(左外部結合) ― left_outer_joinsメソッド
5.6.15 関連するモデルをまとめて取得する ― includesメソッド
◯5.7 コールバック
5.7.1 利用可能なコールバックと実行タイミング
5.7.2 コールバック実装の基本
5.7.3 コールバックのさまざまな定義方法
◯5.8 マイグレーション
5.8.1 マイグレーションのしくみ
5.8.2 マイグレーションファイルの構造
5.8.3 マイグレーションファイルの作成
5.8.4 マイグレーションファイルで利用できる主なメソッド
5.8.5 マイグレーションファイルの実行
5.8.6 リバーシブルなマイグレーションファイル
5.8.7 スキーマファイルによるデータベースの再構築
5.8.8 データの初期化
5.8.9 複数データベースへの対応
●第6章 コントローラー開発
◯6.1 リクエスト情報
6.1.1 リクエスト情報を取得する ― paramsメソッド
6.1.2 マスアサインメント脆弱性を回避する ― StrongParameters
6.1.3 リクエストヘッダーを取得する ― headersメソッド
6.1.4 リクエストヘッダーやサーバー環境変数を取得するための専用メソッド
◯6.2 レスポンスの操作
6.2.1 テンプレートファイルを呼び出す ― renderメソッド
6.2.2 空のコンテンツを出力する ― headメソッド
6.2.3 処理をリダイレクトする ― redirect_toメソッド
6.2.4 ファイルの内容を出力する ― send_fileメソッド
6.2.5 任意のデータを送出する ― send_dataメソッド
6.2.6 レスポンスヘッダーを取得/設定する
6.2.7 補足:ログを出力する ― loggerオブジェクト
◯6.3 HTML以外のレスポンス処理
6.3.1 モデルの内容をJSON / XML形式で出力する
6.3.2 テンプレート経由でJSON / XMLデータを生成する ― JBuilder / Builder
◯6.4 状態管理
6.4.1 クッキーを取得/設定する ― cookiesメソッド
6.4.2 永続化クッキー/暗号化クッキー
6.4.3 セッションを利用する ― sessionメソッド
6.4.4 フラッシュを利用する ― flashメソッド
◯6.5 フィルター
6.5.1 アクションの事前/事後に処理を実行する ― before / afterフィルター
6.5.2 アクションの前後で処理を実行する ― aroundフィルター
6.5.3 フィルターの適用範囲をカスタマイズする
6.5.4 例:フィルターによるフォーム認証の実装
◯6.6 アプリ共通の挙動を定義する ― Applicationコントローラー
6.6.1 共通フィルターの定義 ― ログイン機能の実装
6.6.2 共通的な例外処理をまとめる ― rescue_fromメソッド
6.6.3 クロスサイトリクエストフォージェリ対策を行う ― protect_from_forgeryメソッド
6.6.4 デバイス単位でビューを振り分ける ― Action Pack Variants
6.6.5 独自のフラッシュメッセージを追加する ― add_flash_typesメソッド
6.6.6 補足:共通ロジックをモジュールにまとめる ― concernsフォルダー
■応用編
●第7章 ルーティング
◯7.1 RESTfulインターフェイスとは?
7.1.1 RESTfulインターフェイスを定義する ― resourcesメソッド
7.1.2 単一のリソースを定義する ― resourceメソッド
7.1.3 補足:ルート定義を確認する
◯7.2 RESTfulインターフェイスのカスタマイズ
7.2.1 ルートパラメーターの制約条件 ― constraintsオプション
7.2.2 より複雑な制約条件の設定 ― 制約クラスの定義
7.2.3 format パラメーターを除去する ― formatオプション
7.2.4 コントローラークラス/Urlヘルパーの名前を修正する ― controllers / asオプション
7.2.5 モジュール配下のコントローラーをマッピングする ― namespace / scopeブロック
7.2.6 RESTfulインターフェイスに自前のアクションを追加する ― collection / memberブロック
7.2.7 RESTfulインターフェイスのアクションを無効化する ― only / exceptオプション
7.2.8 階層構造を持ったリソースを表現する ― resourcesメソッドのネスト
7.2.9 リソースの「浅い」ネストを表現する ― shallowオプション
7.2.10 ルート定義を再利用可能にする ― concernメソッド&concernsオプション
◯7.3 非RESTfulなルートの定義
7.3.1 非RESTfulルートの基本 ― matchメソッド
7.3.2 さまざまな非RESTfulルートの表現
7.3.3 トップページへのマッピングを定義する ― rootメソッド
7.3.4 カスタムのUrlヘルパーを生成する
7.3.5 ルート定義ファイルを分離する
●第8章 テスト
◯8.1 テストの基本
8.1.1 Railsアプリのテスト
8.1.2 テストの準備
◯8.2 Unitテスト
8.2.1 Unitテストの基本
8.2.2 テストの実行
8.2.3 Unitテストの具体例
8.2.4 テストの準備と後始末 ― setup / teardownメソッド
8.2.5 補足:テストを並列に実行する ― Parallelテスト
◯8.3 Functionalテスト
8.3.1 Functionalテストの基本
8.3.2 Functionalテストで利用できるAssertionメソッド
◯8.4 Integrationテスト
◯8.5 Systemテスト
8.5.1 Systemテストの準備
8.5.2 Systemテストの作成
8.5.3 Systemテストの実行
●第9章 フロントエンド開発
◯9.1 クライアントサイドスクリプトの基本構成
9.1.1 フロントエンド開発のキーワード
9.1.2 フロントエンド開発に関わるプロジェクト作成時のオプション
◯9.2 アセットパイプライン ― Propshaft
9.2.1 設定ファイル
9.2.2 アセットのインクルード
9.2.3 アセットの事前処理
◯9.3 Import Maps
9.3.1 モジュールの実体を登録する
9.3.2 JavaScript のコードを実装する
◯9.4 バンドラーの活用
9.4.1 バンドラー利用の準備
9.4.2 バンドラーによる実装
◯9.5 CSSプロセッサー
9.5.1 CSSプロジェクトの実行
9.5.2 スタイルのカスタマイズ
●第10章 コンポーネント
◯10.1 電子メールを送信する ― Action Mailer
10.1.1 Action Mailerを利用する準備
10.1.2 メール送信の基本
10.1.3 複数フォーマットでのメール配信
10.1.4 メールをプレビューする
10.1.5 メール送信前に任意の処理を実行する ― インターセプター
10.1.6 メーラーのUnitテスト
◯10.2 時間のかかる処理を実行する ― Active Job
10.2.1 Active Jobを利用する準備
10.2.2 ジョブ実行の基本
10.2.3 ジョブ実行のカスタマイズ
10.2.4 ジョブの登録/実行の前後で処理を実行する ― コールバック
10.2.5 ジョブのUnitテスト
◯10.3 ファイルをアップロードする ― Active Storage
10.3.1 Active Storageを利用する準備
10.3.2 ストレージ利用の基本
10.3.3 さまざまなファイル操作
10.3.4 クラウドサービスへの移行
◯10.4 リッチなテキストエディターを実装する ― Action Text
10.4.1 Action Text利用の準備
10.4.2 Action Text利用の基本
◯10.5 受信メールの処理を自動化する ― Action Mailbox
10.5.1 Action Mailboxの構成
10.5.2 Action Mailboxを利用する準備
10.5.3 メールボックス実行の基本
10.5.4 補足:本番環境への移行
◯10.6 WebSocket通信を実装する ― Action Cable
10.6.1 WebSocketの役割
10.6.2 Action Cableの構成
10.6.3 Action Cable利用の基本
10.6.4 複数のストリームでトピックを分割する
10.6.5 Action Cableの設定
●第11章 Railsの高度な機能
◯11.1 キャッシュ機能の実装
11.1.1 キャッシュを利用する場合の準備
11.1.2 フラグメントキャッシュの基本
11.1.3 フラグメントキャッシュを複数ページで共有する
11.1.4 モデルをもとにキャッシュキーを決める
11.1.5 指定の条件に応じてキャッシュを有効にする
11.1.6 キャッシュの格納先を変更する
◯11.2 アプリの国際化対応 ― I18n API
11.2.1 国際化対応アプリの全体像
11.2.2 国際化対応の基本的な手順
11.2.3 ロケールを動的に設定する方法 ― ApplicationController
11.2.4 辞書ファイルのさまざまな配置と記法
11.2.5 Rails 標準の翻訳情報を追加する
11.2.6 ビューヘルパーtの各種オプション
◯11.3 Hotwire
11.3.1 Hotwireの基本
11.3.2 ページの部分更新を有効化する
11.3.3 コンテンツの断片を挿入/置換/削除する
◯11.4 本番環境への移行
11.4.1 GitHubリポジトリの準備
11.4.2 ローカル環境での準備
11.4.3 Render.com側の準備
