目次
- はじめに
- 本書の使い方
Chapter 1 Ruby on Railsの基本
- Ruby on Railsとは?
- Railsを利用するための環境設定
基本コマンド
- Railsアプリケーションを新規作成する―rails newコマンド
- 必要なgemファイルを管理する―gemメソッド
- 必要なgemをインストールする―bundle installコマンド
- HTTPサーバを起動する―rails serverコマンド
- モデル/テンプレート/コントローラをまとめて作成する―rails generate scaffoldコマンド
- 自動生成されたファイルを削除する―rails destroyコマンド
- Rails環境で動作するバッチファイルを作成する―rails runnerコマンド
アプリケーション設定
- アプリケーションの設定情報を定義する―configメソッド
- アプリケーション変数を定義する―configメソッド
その他のコマンド
- Railsで利用できるRakeタスクを確認する―rails -Tコマンド
- 利用しているライブラリのバージョンを確認する―rails aboutコマンド
- 開発中の懸案事項をメモする―rails notesコマンド
- Railsアプリケーションをバージョンアップする―rails app:updateコマンド
- 一時ファイル領域を作成・消去する―rails tmp:xxxxコマンド
- アプリケーションにテンプレートを適用する―rails app:templateコマンド
- オリジナルのRakeタスクを作成する―taskメソッド
Chapter 2 コントローラ開発
- 概要
コントローラの基本
- コントローラクラスを作成する―rails generate controllerコマンド
- アクションメソッドを記述する―アクションメソッド
- コントローラ/アクション名を取得する―controller_xxxxx/action_nameメソッド
リクエスト情報
- ポストデータ/クエリ情報/ルートパラメータを取得する―paramsメソッド
- リクエストヘッダ/サーバ環境変数を取得する―headersメソッド
レスポンス情報
- テンプレートファイルを呼び出す―renderメソッド
- 文字列を出力する―renderメソッド(:plain)
- HTMLを出力する―renderメソッド(:html)
- アクションにインラインのテンプレートを記述する―renderメソッド(:inline)
- テンプレートに適用するレイアウトを変更する―render(:layout)/layoutメソッド
- XML形式のレスポンスを生成する―renderメソッド(:xml)
- JSON形式のレスポンスを生成する―render(:json)メソッド
- XML形式のデータをJSON形式に変換する―from_xmlメソッド
- 空のコンテンツを出力する―headメソッド
- テンプレートでの処理結果を文字列として取得する―render_to_stringメソッド
- 他のページにリダイレクトする―redirect_to/redirect_backメソッド
- 指定されたファイルを出力する―send_fileメソッド
- クライアントにバイナリデータを送信する―send_dataメソッド
- 拡張子に応じて応答フォーマットを切り替える―respond_toメソッド
- respond_toメソッドで利用できる拡張子を定義する―registerメソッド
- 応答ヘッダを取得/設定する―headersメソッド
- Cache-Controlヘッダを操作する―expires_in/expires_nowメソッド
- BuilderテンプレートでXML文書を生成する―xmlオブジェクト
- Atomフィードを生成する―atom_feedメソッド
状態管理
- クッキーを取得/設定する―cookiesメソッド
- クッキーを削除する―deleteメソッド
- 永続化クッキー/署名付きクッキーを発行する―permanent/signedメソッド
- セッション情報を読み書きする―sessionメソッド
- セッションを破棄する―reset_session/sessionメソッド
- セッションの設定を変更する―session_store/sessionパラメータ
- セッション格納のデータベースを準備する―rails generate active_record:session_migration/rails db:sessions:trimコマンド
- リダイレクト前後で一時的にデータを維持する(1)―redirect_toメソッド(:alert/:notice/:flash)
- リダイレクト前後で一時的にデータを維持する(2)―flashメソッド
- 現在のアクションでのみ有効なフラッシュを定義する―nowメソッド
- フラッシュを次のリクエストに持ち越す―keepメソッド
- フラッシュを破棄する―discardメソッド
ログ管理
- 標準ログを出力する―unknown/fatal/error/warn/info/debugメソッド
- ログの出力を重要度に応じて絞り込む―log_levelパラメータ
- ログファイルをクリアする―rails log:clearコマンド
- 特定の情報をログから除外する―filter_parameters/filter_redirectパラメータ
フィルタ
- アクションの直前/直後に処理を実行する―before_action/after_actionメソッド
- アクションの前後で処理を実行する―around_actionメソッド
- フィルタを簡単に定義する―before_action/around_action/after_actionメソッド
- 複数のコントローラでフィルタを共有する―before/after/aroundメソッド
- 親コントローラから継承したフィルタを除外する―skip_xxxxx_actionメソッド
- フィルタの実行順序を変更する―prepend_xxxxx_actionメソッド
- 基本認証を実装する―authenticate_or_request_with_http_basicメソッド
- 基本認証を簡単に実装する―http_basic_authenticate_withメソッド
- ダイジェスト認証を実装する―authenticate_or_request_with_http_digestメソッド
Applicationコントローラ
- すべてのコントローラ共通の処理を定義する―ApplicationControllerクラス
- クロスサイトリクエストフォージェリ対策を行う―protect_from_forgery/csrf_meta_tagsメソッド
- アプリケーション共通の例外処理をまとめる―rescue_fromメソッド
- コントローラクラスでビューヘルパーを宣言する―helper_methodメソッド
- コントローラに対応するヘルパーモジュールだけを読み込む―action_controller.include_all_helpersパラメータ/clear_helpersメソッド
- url_forメソッドに渡すデフォルトパラメータを設定する―default_url_optionsメソッド
- SSL通信を制御する―force_sslパラメータ/ssl_optionsパラメータ
Chapter 3 モデル開発
- 概要
モデルの基本
- データベースへの接続設定を定義する―database.yml
- データベースを作成/削除する―rails db:create/rails db:create:all/rails db:drop/rails db:drop:allコマンド
- データベースクライアントを起動する―rails dbconsoleコマンド
- モデルクラスを自動生成する―rails generate modelコマンド
- モデルの動作をコンソールで対話的に確認する―rails consoleコマンド
マイグレーション
- マイグレーションとは?
- マイグレーションファイルでデータベースを操作する―change/up/downメソッド
- マイグレーションファイルを実行する―rails db:migrateコマンド
- マイグレーションの状態/バージョンを確認する―rails db:migrate:status/rails db:versionコマンド
- スキーマファイルでデータベースを作成する―rails db:schema:load/rails db:resetコマンド
- 現在のデータベースからスキーマファイルを生成する―rails db:schema:dumpコマンド
- データベースに初期データを投入する―rails db:seed/rails db:setupコマンド
- データベースにテストデータを投入する―rails db:fixtures:loadコマンド
- マイグレーションファイルを単体で作成する―rails generate migrationコマンド
- テーブルを作成する―create_tableメソッド
- テーブルに特殊な列を追加する―timestamps/references/belongs_toメソッド
- 既存テーブルを破棄する―drop_tableメソッド
- マイグレーションファイルで任意のSQL命令を実行する―executeメソッド
- 既存テーブルに列やインデックスを追加する―add_xxxxxメソッド
- 既存の列定義/インデックスを削除する―remove_xxxxxメソッド
- 既存の列定義を変更する―change_xxxxxメソッド
- 既存列/インデックス/テーブルの名前を変更する―rename_xxxxxメソッド
- 列/インデックスが存在するかを判定する―xxxxx_exists?メソッド
- テーブル定義を変更する―change_tableメソッド
データの取得
- テーブルからすべてのレコードを取得する―allメソッド
- 主キー値でデータを検索する―findメソッド
- 任意の列でデータを検索する―find_by_xxxxxメソッド
- データを検索し初期化するか作成する―find_or_initialize_by/find_or_create_byメソッド
- テーブルの先頭/末尾のレコードを取得する―first/lastメソッド
データの取得(クエリメソッド)
- クエリメソッドとは?
- 検索条件をハッシュで設定する―whereメソッド
- 検索条件を文字列で設定する―whereメソッド
- データを昇順/降順に並べ替える―order/reorderメソッド
- m~n件のレコードだけを取得する―limit/offsetメソッド
- 取得列を指定する―selectメソッド
- 特定のキーでデータを集計する―groupメソッド
- 集計結果をもとにデータを絞り込む―havingメソッド
- モデルに適用した条件式を除外する―exceptメソッド
その他の取得系メソッド
- 特定条件に合致するレコードの件数や平均値,合計値などを求める―集計メソッド
- モデルオブジェクトをリロードする―reloadメソッド
- SQL命令を直接指定する―find_by_sqlメソッド
- データが1件でも存在するかを確認する―exists?メソッド
- レコードのフィールド値を取得する―attributesメソッド
- テーブルのすべての列名を取得する―attribute_namesメソッド
- よく利用する条件式/ソート式を準備する―scopeメソッド
- 名前付きスコープをパラメータ化する―scopeメソッド
- デフォルトのスコープを定義する―default_scopeメソッド
- モデルに課せられた条件式やソート式を無効化する―unscopedメソッド
データの登録/更新/削除
- モデルオブジェクトを新規に作成する―newメソッド
- モデルオブジェクトをデータベースに保存する―save/save!メソッド
- モデルオブジェクトの作成から保存までを一気に行う―create/create!メソッド
- 特定のフィールドを更新する―update_attributeメソッド
- 既存のモデルオブジェクトを変更する―attributes=/assign_attributesメソッド
- 複数のモデルオブジェクトをまとめて更新する―updateメソッド
- 複数のモデルオブジェクトを効率的に更新する―update_allメソッド
- 既存のレコードを削除する―destroy/deleteメソッド
- 既存のレコードをまとめて削除する―destroy_all/delete_allメソッド
- レコードの状態をチェックする―new_record?/persisted?/changed?/destroyed?メソッド
- モデルオブジェクトへの変更を監視する―changed/changed_attributes/changes/previous_changesメソッド
- 指定列の値をインクリメント/デクリメントする―increment/decrementメソッド
- 指定列のtrue/false値を反転させる―toggleメソッド
- レコードのupdated_at/on列を指定時刻で更新する―touchメソッド
- トランザクション処理を実装する―transactionメソッド
- オプティミスティック同時実行制御を実装する―StaleObjectErrorクラス
- データベースの行ロック機能を利用する―lock/lock!メソッド
- データベースに対してSQL命令を直接発行する―connection/executeメソッド
- テーブルに存在しないプロパティをデータベースに保存する―セッターメソッド
アソシエーション
- アソシエーションとは?
- 参照元テーブルから被参照テーブルにアクセスする―belongs_toメソッド
- 1:nの関連を宣言する―has_manyメソッド
- 1:1の関連を宣言する―has_oneメソッド
- m:nの関連を宣言する(中間テーブル)―has_and_belongs_to_manyメソッド
- より複雑なm:nの関連を宣言する―has_manyメソッド(:through)
- アソシエーションの挙動をカスタマイズする―belongs_to/has_one/has_many/has_and_belongs_to_manyメソッド
- 関連モデルの件数を親モデル側でキャッシュする―belongs_toメソッド(:counter_cache)
- 1つのモデルを複数の親モデルに関連付ける(ポリモーフィック関連)―belongs_toメソッド(:polymorphic)/has_manyメソッド(:as)
- 関連するモデルを取得する―association/collectionメソッド
- 関連するモデルを割り当てる―association=/collection=/collection_singular_ids=/collection<<メソッド
- 関連するモデルを新規に作成する―build_association/create_association/build/createメソッド
- 関連するモデルを削除する―delete/clearメソッド
- 関連するモデルのid値を取得する―collection_singular_idsメソッド
- 関連するモデルの数を取得する―sizeメソッド
- 関連するモデルが存在するかをチェックする―empty?/exists?メソッド
- 関連するモデルと結合する―joinsメソッド
- 関連するモデルをまとめて読み込む―includesメソッド
検証機能
- 標準の検証機能を利用する―validatesメソッド
- 入力要素が空の場合に検証をスキップする―validatesメソッド(:allow_nil/:allow_blank)
- 検証エラーメッセージをカスタマイズする―validatesメソッド(:message)
- 検証を新規登録/更新時に限定する―validatesメソッド(:on)
- 特定の条件に合致した/しない場合にのみ検証を実施する―validatesメソッド(:if/:unless)
- 検証エラーメッセージを取得する―errorsメソッド
- エラー発生元の表示スタイルを変更する―action_view.field_error_procパラメータ
- モデル固有の検証ルールを定義する―validateメソッド
- 複数のプロパティに共通するモデル独自の検証ルールを定義する―validates_eachメソッド
- 汎用的な検証ルールを定義する―validate_eachメソッド
- 検証パラメータにアクセスする―optionsメソッド
- データベースに関連付かないモデルを定義する―ActiveModel::Conversion/ActiveModel::Validations/ActiveModel::Namingモジュール
コールバック
- モデルの新規登録/更新/削除時に処理を呼び出す―before_xxxxx/after_xxxxxメソッド
- モデルオブジェクトの検索/生成時に処理を呼び出す―after_find/after_initializeメソッド
- コールバックメソッドを簡単に宣言する―before_xxxxx/after_xxxxxメソッド
- コールバックを複数のモデルで共有する―コールバッククラス
Chapter 4 ビュー開発
- 概要
ERBの基本
- テンプレートにRubyスクリプトを埋め込む―<%…%>/<%=…%>/<%==…%>
- テンプレート変数を引き渡す―@…
- テンプレートファイルでメモ情報を記録する―コメント構文
レイアウト
- レイアウトとは?
- アプリケーション共通のレイアウトを準備する―yieldメソッド
- レイアウトに複数のコンテンツ領域を埋め込む―content_forメソッド
- レイアウトを入れ子にする―content_for?メソッド
部分テンプレート
- 部分テンプレートとは?
- 部分テンプレートを呼び出す―renderメソッド
- 部分テンプレートにモデルを簡単に引き渡す―renderメソッド(省略構文)
- 配列に対して順に部分テンプレートを適用する―renderメソッド(:collection)
- 配列に対して順に部分テンプレートを適用する(簡易版)―renderメソッド(省略構文)
- 配列の内容を区切りテンプレート付きで出力する―renderメソッド(:spacer_template)
ビューヘルパー(フォーム)
- 汎用的なフォームを生成する―form_withメソッド
- モデルと連携したフォームを生成する―form_withメソッド
- 入力要素を生成する―xxxxx_field/text_areaメソッド
- ラジオボタン/チェックボックスを生成する―radio_button/check_boxメソッド
- コレクションからラジオボタン/チェックボックスを生成する―collection_check_boxes/collection_radio_buttonsメソッド
- 選択ボックス/リストボックスを生成する―selectメソッド
- オブジェクト配列から選択ボックスを生成する―collection_selectメソッド
- 選択ボックスのオプションをグループ化する―grouped_collection_selectメソッド
- 日付/時刻入力用の選択ボックスを生成する―xxxxx_selectメソッド
- ラベルテキストを生成する―labelメソッド
- ボタン/サブミットボタンを生成する―submitメソッド
- サブフォームを定義する―fields_forメソッド
- 入力項目をグループ化する―field_set_tagメソッド
- 一覧形式の入力フォームを生成する―xxxxx_fieldメソッド(:index)
ビューヘルパー(リンク)
- ルート定義をもとにURLを生成する―url_forメソッド
- ハイパーリンクを生成する―link_toメソッド
- 条件に合致した/しない場合のみリンクを生成する―link_to_if/link_to_unlessメソッド
- リンク先が現在のページであればハイパーリンクを無効にする―link_to_unless_currentメソッド
- メールアドレスへのリンクを生成する―mail_toメソッド
ビューヘルパー(外部リソース)
- イメージ画像を表示する―image_tagメソッド
- ブラウザ上で音声/動画を再生する―audio_tag/video_tagメソッド
- サイトのFaviconを設定する―favicon_link_tagメソッド
- ブラウザにフィードの存在を通知する―auto_discovery_link_tagメソッド
- 外部リソースのパスを取得する―path_to_xxxxxメソッド
- 外部リソースのパスを取得する―url_to_xxxxメソッド
ビューヘルパー(データ加工)
- 改行文字を<p>/<br>タグで置き換える―simple_formatメソッド
- 文字列を指定フォーマットで整形する―sprintfメソッド
- 文字列を指定の桁数で切り捨てる―truncateメソッド
- 文字列から指定された単語の前後を抜き出す―excerptメソッド
- キーワードをハイライト表示する―highlightメソッド
- テーブルやリストのスタイルをn行おきに変更する―cycle/reset_cycleメソッド
- サイクルの現在値を取得する―current_cycleメソッド
- 数値データを加工する―number_xxxxxメソッド
- 日付/時刻データを加工する―strftimeメソッド
ビューヘルパー(出力/エスケープ)
- <%…%>の中で文字列を出力する―concatメソッド
- 文字列をHTMLエスケープせずに出力する―rawメソッド
- URLエンコードを行う―url_encodeメソッド
- 文字列から特定のタグ/属性を除去する―sanitizeメソッド
ビューヘルパー(国際化対応)
- 国際化対応とは?
- 辞書ファイルを作成する―辞書ファイル
- ビューヘルパー/エラーメッセージなどを日本語化する―辞書ファイル
- アプリケーションで使用するロケールを設定する―i18n.default_localeパラメータ
- ロケール情報を動的に設定する―I18n.locale=メソッド
- 辞書ファイルを参照する―tメソッド
- ロケール設定に応じて日付/時刻を整形する―lメソッド
ビューヘルパー(その他)&自作
- 任意のタグを生成する―tagメソッド
- オブジェクトやハッシュなどのデータを可読形式に整形する―debugメソッド
- テンプレートの処理結果を変数にセットする―captureメソッド
- ビューヘルパーを自作する―ApplicationHelperモジュール
- 任意の属性を受け取るビューヘルパーを定義する―merge!メソッド
- 本体を持つビューヘルパーを定義する―block_given?メソッド
Chapter 5 ルーティング
- 概要
基本コマンド
- 現在のルート定義を確認する―rails routesコマンド
RESTfulインターフェイス
- RESTfulインターフェイスを定義する―resourcesメソッド
- 単一リソースに対するルートを定義する―resourceメソッド
- 階層関係にあるリソースをルート定義する―resources/resourceメソッド
- ルートパラメータに制約条件を付与する―:constraintsオプション
- ルートパラメータに複雑な制約条件を設定する―matches?メソッド
- RESTfulインターフェイスに自前のルートを追加する(1)―collection/memberブロック
- RESTfulインターフェイスに自前のルートを追加する(2)―:onオプション
- RESTfulインターフェイスの標準アクションを無効にする―:only/:exceptオプション
- new/editアクションに対応するURLを変更する―:path_namesオプション
- モジュール配下のコントローラをマッピングする(1)―namespaceブロック
- モジュール配下のコントローラをマッピングする(2)―scope(:module)ブロック
- URLに特定の接頭辞を付与する―scopeブロック
- マッピングすべきコントローラを変更する―:controllerオプション
- 自動生成するUrlヘルパーの名前を変更する―:asオプション
非RESTfulインターフェイス
- リソースに関係ないルートを定義する―matchメソッド
- 非RESTfulインターフェイスでルートパラメータに制約条件を付与する―:constraintsオプション
- ルートパラメータのデフォルト値を設定する―:defaultsオプション
- ルート定義をリダイレクトする―redirectメソッド
- 非RESTfulインターフェイスで自動生成するUrlヘルパーの名前を変更する―asオプション
- トップページへのルートを定義する―rootメソッド
- カスタムURLヘルパーを定義する―directメソッド
Chapter 6 テスト
- 概要
基本コマンド
- テストデータベースを作成する―rails db:test:xxxxxコマンド
- すべてのテストを実行する―rails test:allコマンド
- テストの順番を変更する―active_support.test_orderパラメータ
- Parallelテストを指定する―parallelizeメソッド
- Parallelテストの前処理と後処理を行う―parallelize_setup/parallelize_teardownメソッド
Modelテスト
- Modelテストを作成する―rails generate test_unit:modelコマンド
- Modelテストを準備する―testメソッド
- Modelテストの結果をチェックする―assert_xxxxxメソッド
- 無条件にテストメソッドを失敗させる―flunkメソッド
- フィクスチャの内容を参照する―フィクスチャの展開
- テストの準備と後始末を行う―setup/teardownメソッド
- Modelテストを実行する―rails testコマンド
Functionalテスト
- Functionalテストを作成する―rails generate test_unit:scaffoldコマンド
- Functionalテストを準備する―testメソッド
- Functionalテストでコントローラを起動する―get/post/patch/put/delete/headメソッド
- Functionalテストの結果をチェックする―assert_xxxxxメソッド
- テンプレートによる出力結果をチェックする―assert_selectメソッド
- Functionalテストを実行する―rails testコマンド
Integrationテスト
- Integrationテストを準備する―rails generate integration_testコマンド
- Integrationテストでコントローラを起動する―get/post/patch/put/delete/head/follow_redirectメソッド
- Integrationテストを実行する―rails test:integrationコマンド
Systemテスト
- Systemテストを作成する―rails generate system_testコマンド
- Systemテストを準備する―visit/fill_in/check/click_onメソッド
- Systemテストを実行する―rails test:systemコマンド
- スクリーンショットを撮る―take_screenshot/take_failed_screenshotメソッド
Chapter 7 コンポーネント
Action Mailer
- メール送信のための共通設定を定義する―action_mailer.xxxxxパラメータ
- メーラークラスを自動生成する―rails generate mailerコマンド
- メール送信のための処理を実装する―default/mailメソッド
- メールヘッダを設定する―headersメソッド
- メールテンプレートで利用するurl_forオプションを宣言する―action_mailer.default_url_optionsパラメータ
- メールを送信する―deliverメソッド
- HTMLメールを送信する―.html.erbファイル
- メール本文に共通のテキストを挿入する―layoutメソッド
- 添付ファイル付きメールを送信する―attachmentsメソッド
- メールの出力形式を制御する―mailメソッド
Action Mailbox
- 概要
- Action Mailboxをインストールする―rails action_mailbox:installコマンド
- イングレスのための資格情報を登録する―rails credentials:editコマンド
- イングレスのための設定を定義する(SMTPリレーエージェント)―action_mailbox.ingressパラメータ/rails action_mailbox:ingress:xxxxコマンド
- イングレスのための設定を定義する(メールサービスプロバイダ)―action_mailbox.ingressパラメータ
- ルーティングルールを設定する―routingメソッド
- メールボックスをセットアップする―rails generate mailboxコマンド
- メール受信の前処理を行う―before_processingメソッド
- メールを返信する―bounce_withメソッド
- 受信メールを処理する―processメソッド
- メールが削除されるまでの時間を設定する―action_mailbox.incinerate_afterパラメータ
- development環境でメール受信を実行する―コンダクターコントローラ
Action Text
- 概要
- Action Textをインストールする―rails action_text:installコマンド
- モデルにリッチテキストフィールドを追加する―has_rich_textメソッド
- リッチテキストフィールドをフォームで参照する―rich_text_areaメソッド
Action Cable
- 概要
- サーバにチャネルを作成する―rails generate channelコマンド
- サブスクライブされたときの処理を指定する―subscribed/unsubscribedメソッド
- クライアントにサブスクリプションを作成する―consumer.subscriptions.createメソッド
- ストリームを作成する―stream_fromメソッド
- クライアントからアクションを実行する―performメソッド
- 特定のモデルにブロードキャストする―stream_for/broadcast_toメソッド
- ブロードキャストする―broadcastメソッド
- サブスクリプションアダプタを設定する―cable.ymlファイル
- 許可する送信元を設定する―action_cable.allowed_request_origins/action_cable.disable_request_forgery_protectionパラメータ
Active Storage
- 概要
- 画像処理サポートのためのライブラリをインストールする(Windows)
- 画像処理サポートのためのライブラリをインストールする(macOS)
- Active Storageをセットアップする―rails active_storage:installコマンド
- サービスを定義する―storage.ymlファイル
- サービスにAmazon S3を使う―storage.ymlファイル
- サービスにMicrosoft Azure Storageを使う―storage.ymlファイル
- サービスにGoogle Cloud Storageを使う―storage.ymlファイル
- 利用サービスを設定する―active_storage.serviceパラメータ
- ファイルとレコードにマッピングを設定する(1対1)―has_one_attachedメソッド
- ファイルとレコードにマッピングを設定する(1対多)―has_many_attachedメソッド
- ファイルをアップロードする―file_fieldメソッド
- ファイルを表示する―representable?/representationメソッド
- ファイルをプレビューする―previewable?/previewメソッド
- レコードにファイルを添付する―attachメソッド
- ファイルが添付されているか調べる―attached?メソッド
- 添付ファイルのバリアントを指定する―variantメソッド
- バリアントプロセッサを指定する―active_storage.variant_processorパラメータ
- ファイルシステムのファイルを添付する―attachメソッド
- 添付ファイルを削除する―purge/purge_laterメソッド
- リダイレクトモードでファイルを配信する―url_for/rails_blob_xxxxメソッド
- プロキシモードでファイルを配信する―rails_storage_proxy_xxxxメソッド/active_storage.resolve_model_to_routeパラメータ
- ファイルをダウンロードする―openメソッド
- ファイルが解析済みか調べる―analyzed?メソッド
- 画像を変形する―variable?/variantメソッド
Active Job
- 概要
- ジョブを作成する―rails generate jobコマンド
- キューを指定してジョブを作成する―rails generate jobコマンド
- ジョブをキューに登録する―perform_laterメソッド
- ジョブの実行タイミングなどを指定する―setメソッド
- キューアダプタを指定する―active_job.queue_adapterパラメータ/queue_adpterメソッド
- ジョブが使うキューを指定する―queue_asメソッド/active_job.queue_name_prefixパラメータ
- ジョブをただちに実行する―perform_nowメソッド
- コールバックを設定する―xxxx_enqueue/xxxx_performメソッド
- 例外をキャッチする―rescue_from/retry_on/discard_onメソッド
キャッシュ
- キャッシュを有効化する―action_controller.perform_cachingパラメータ
- 開発環境でキャッシュの有効・無効を切り替える―rails dev:cacheコマンド
- ページの一部分をキャッシュする(フラグメントキャッシュ)―cacheメソッド
- 複数のページでフラグメントキャッシュを共有する―cacheメソッド
- フラグメントキャッシュの有無を確認する―fragment_exist?メソッド
- キャッシュの保存方法を変更する―cache_storeパラメータ
プラグイン
- プラグインとは?
- ページング機能を実装する(アクションメソッド)―paginateメソッド
- ページング機能を実装する(テンプレート)―will_paginateメソッド
- ページングに関する情報を取得する―will_paginateプラグイン
- アプリケーションに認証機能を実装する―rails generate deviseコマンド
- 認証の諸機能へのリンクを作成する―xxxxx_pathメソッド
- コントローラクラスに認証機能を実装する―authenticate_xxxxx!メソッド
- ログインユーザの情報を取得する―xxxxx_signed_in?/current_xxxxx/xxxxx_sessionメソッド
- 認証関連ページを日本語化する―devise.ja.ymlファイル
Chapter 8 フロントエンド開発
- 概要
- 基本的な構成
- バンドラーを使う構成
- CSSプロセッサを使う構成
- フロントエンド関連のデフォルト構成
基本コマンド
- JavaScript/CSSをビルドしてサーバを起動する―bin/devコマンド
- アセットを事前コンパイルする―rails assets:xxxxxコマンド
アセットパイプライン
- 概要
- Sprocketsの挙動を制御する―assets.xxxxxパラメータ
- Propshaftの挙動を制御する―assets.xxxxxパラメータ
- JavaScript/スタイルシートをインクルードする―javascript_include_tag/stylesheet_link_tagメソッド
- JavaScriptのコードをエスケープ処理する―jメソッド
Import Maps
- 概要
- モジュールをコマンドでピン留め/解除する―importmapコマンド
- モジュールをピン留め/解除する―pin/pin_all_fromメソッド
- マッピングをインクルードする―javascript_importmap_tagメソッド
- マッピングを出力する―importmapコマンド
JavaScriptバンドル
- 概要
- バンドラーをアプリケーションに組み込む―rails newコマンド
- バンドラーの動作をカスタマイズする―esbuild/rollup/webpackコマンド
CSSバンドル
- 概要
- CSSプロセッサをアプリケーションに組み込む―rails newコマンド
Hotwire
- 概要
- Hotwireをフォーム/リンク単位で無効にする―form_with/link_toメソッド
- Hotwireをアプリケーション全体で無効にする―Turbo.session.driveメソッド
- フレームを作成する―turbo_frame_tagメソッド
- コンテンツを挿入する―turbo_stream.prepend/turbo_stream.appendメソッド
- コンテンツを置き換える―turbo_stream.replace/turbo_stream.updateメソッド
- コンテンツを削除する―turbo_stream.removeメソッド
付録
- 本番環境へのデプロイ
コラム
- AbstractController::DoubleRenderError例外に要注意
- JSONを整形して見るJSONViewer
- Rails以外のRubyによるWAF
- Windows版Rubyは最新版をむやみにインストールしない
- Railsの「宣言」記法とクラスメソッド
- concernsフォルダとは?
- RailsアプリをVSCodeで開発する
- Railsアプリケーションの初期化ファイルの使い分け
- has_many/has_oneとbelongs_toメソッドは双方必須?
- gemコマンドの主なオプション
- コーディング規約
- Rubyの高速化アプローチ
- 日付/時刻に関する便利なメソッド
- binフォルダとは?
- 状態管理の手法
- ハッシュの省略形には要注意
- HTML5とHTML Living Standard
- Railsを支える標準基盤 - Rack
- Railsアプリ開発に役立つ情報源
- Railsをより深く学ぶための参考書籍
- コードの改行位置に要注意
- Action~とActive~の違いとは?
- Pipedream
- Trixエディタ
- rakeコマンド?railsコマンド?
- Railsアプリケーションの配布
- Bootsnap
- Import MapsとWebブラウザ
- JavaScriptバンドラーの比較
- Stimulusとは?