Railsプログラマなら手放せない一冊! 書評「Rails3レシピブック 190の技」

公開日: : 最終更新日:2014/01/06 Ruby on Rails

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

Ruby on Rails定番リファレンスであるレシピブックのRails3版が登場。Railsプログラマなら手放せない一冊。

ボクはウェブサービスを作るときはRailsを使っているのですが、前バージョンであるRailsレシピブック 183の技にはだいぶお世話になってます。2冊買って、1冊は自宅のデスクに。もう1冊は裁断してスキャンしてPDFにしてあります。カフェでノートパソコンで作業する時は、PDFのほうを参照しています。

「これをやるにはRailsではどうやって書くんだっけ?」というときに、ウェブでいちいち検索していると効率が悪いものです。レシピブックなら大体の重要なことがきちんと一冊にまとまっているので、迅速に正しい答えにたどり着くことができます。

Rails3プログラマなら本書は入手しておきたいところ。できれば2冊購入して、1冊は自宅のデスクに、そしてもう1冊は自炊してノートパソコンやiPadへ。

Rails関連の他の記事はこちらをどうぞ。他の書評はこちらをどうぞ。

目次

第1章 Railsの基本
[001] Railsをインストールする
[002] Railsアプリケーションを作成する
[003] Railsアプリケーションのファイル構造を理解する
[004] DB接続を設定する
[005] モデル・ビュー・コントローラを自動生成する
[006] Railsの規約とは
[007] Railsの宣言的記法とは
[008] DBのマイグレーションファイルを生成する
[009] APIのドキュメントを参照する
[010] 使用しているRubyやRailsのバージョンを調べる
[011] Railsをバージョンアップする
[012] Railsやライブラリのバージョンを固定する
[013] 開発サーバを動かす
[014] Railsを対話的に実行する

第2章 コントローラ
[015] コントローラとは
[016] テンプレートを指定して描画する
[017] 文字列を直接描画する
[018] APIレスポンスを文字列として描画する
[019] 描画結果を文字列として取得する
[020] URLを生成する
[021] コントローラ以外からURLを生成する
[022] 他のURLへリダイレクトさせる
[023] ステータスコードのみのレスポンスを返す
[024] ページのレイアウトを設定する
[025] コントローラ全体の共通のメソッドを追加する
[026] コントローラ名やアクション名を取得する
[027] アクションの前または後にフィルタを適用する
[028] アクションの前後両方にフィルタを適用する
[029] フィルタの実行をスキップする
[030] リクエストの種類でレスポンスのフォーマットを変更する
[031] レスポンスフォーマットごとに処理を分岐する
[032] 簡単なメッセージを画面へ表示する
[033] セッションにデータを保存する
[034] セッションの保存方法を変更する
[035] セッションを失効させる
[036] フォームに入力された値を取得する
[037] リクエストヘッダの内容を取得する
[038] レスポンスヘッダの内容を設定する
[039] 画像やファイルをダウンロードさせる
[040] クッキーを設定する
[041] 本番環境でのエラーをまとめて処理する
[042] リソースへのルーティングを定義する
[043] リソースへのルーティングをカスタマイズする
[044] 複雑なルーティングを定義する
[045] Rackアプリケーションやミドルウェアを作る
[046] RackミドルウェアをRailsに組み込む
[047] Rackアプリケーションをマウントする
[048] Basic認証をかける
[049] Digest認証をかける
[050] SSLを使う

第3章 モデル
[051] モデルとは、ActiveRecordとは
[052] DBスキーマを定義する
[053] マイグレーションでRailsにとって特別なカラムを追加する
[054] DBを検索してモデルオブジェクトをロードする
[055] DBに初期データを投入する
[056] リレーションを理解する
[057] 検索条件を指定する
[058] 並び順を指定してDBを検索する
[059] 取得件数を指定してDBを検索する
[060] 関連テーブルとの結合を行う
[061] 関連モデルの情報をまとめてロードする
[062] 検索時に実行されるSQLの一部を変える
[063] 検索条件をモデルにあらかじめ定義する
[064] デフォルトスコープを定義する
[065] リレーションにかかっているスコープを除外する
[066] 複数のモデルにまたがるリレーションを連結する
[067] カラムを簡単に完全一致検索する
[068] モデルオブジェクトの内容をDBから再ロードする
[069] モデルオブジェクトを生成する
[070] モデルオブジェクトを保存してDBにレコードを追加する
[071] モデルオブジェクトを変更してDB内のレコードを更新する
[072] モデルオブジェクトを削除してDBからレコードを削除する
[073] 1対多の関連での参照元を設定する(belongs_to)
[074] 1対多の関連での参照先を設定する(has_many)
[075] 1対1の関連を設定する(has_one)
[076] 関連をまたいだ関連を設定する
[077] 多対多の関連を設定する
[078] ポリモーフィック関連を利用する
[079] 関連とDBへの保存のタイミングを整理する
[080] SQLを直接使って検索する
[081] SQLの集計関数を利用する
[082] トランザクションを使用する
[083] rails consoleでモデルを操作する
[084] レコードの作成時刻・更新時刻を自動的に保存する
[085] ロックを利用する
[086] DBに保存する値を検証する(バリデーションの概要を知る)
[087] バリデーションを定義する
[088] 対象の属性を軸にしてすっきりとバリデーションを定義する
[089] バリデーションメソッドを自分で定義する
[090] カラムに対応しない属性を保存可能にする
[091] コールバックを利用する
[092] オブザーバを利用する
[093] カウンタキャッシュを利用する
[094] バリューオブジェクトを使う
[095] DBアクセスを効率化する
[096] 複数の属性を更新する場合に、特定の属性の更新を防ぐ
[097] id以外のカラムを主キーにする
[098] テーブル名を変える
[099] DBクエリを直接発行する
[100] モデルの値の変更を検知する
[101] DBに存在しないモデルオブジェクトを定義する

第4章 ビュー
[102] ビューテンプレートとは
[103] ERBでRubyコードを実行してHTMLタグを出力する
[104] HTMLタグを取り除く
[105] URL文字列をコントローラ名やアクション名から生成する
[106] タグを作成する
[107] タグを作成する
[108] レイアウトを使ってテンプレートを分割する
[109] ネストしたレイアウトファイルを使う
[110] スタイルシートやJavaScriptを読み込む
[111] 分割されたテンプレートを描画する
[112] モデルに対応するフォームを作成する
[113] モデルに対応したフォーム内で入力項目を作成する
[114] 任意のフォームを作成する
[115] ラベルを作成する
[116] フォームに日付や時刻の入力項目を作成する
[117] フォームの二度押しを防ぐ
[118] フォームにドロップダウンリスト(タグ)を作成する
[120] ネストしたモデルのフォームを作成する
[121] フォームに1種類の入力項目を複数作成する
[122] バリデーションのエラーメッセージを表示する
[123] 数値を特定のフォーマットで表示する
[124] RubyスクリプトでHTMLタグを作成する
[125] 規約に沿ったDOM要素のid属性やclass属性を付与する
[126] 繰り返し項目を簡単に出力する
[127] ヘルパーメソッドを作成する
[128] ビューの一部分をキャッシュする
[129] Hamlを使う
[130] Ajaxを使う
[131] HTML5タグを使う
[132] Sass(SCSS)を使う
[133] CoffeeScriptを使う

第5章 ActiveSupport
[134] 単数形と複数形を変換する
[135] クラス名とファイル名とテーブル名を相互変換する
[136] 日付や時刻を計算する
[137] 数値をバイト単位で表示する
[138] RubyオブジェクトとYAMLを相互変換する
[139] モデルオブジェクトや配列とXMLを相互変換する
[140] RubyオブジェクトとJSONを相互変換する
[141] ArrayやEnumerableに追加された便利なメソッド
[142] 変数が特定のパラメータリストに含まれるか判定する
[143] Hashに追加された便利なメソッド
[144] 小数を任意の桁数で丸める
[145] Railsスタイルのメソッド引数を扱う
[146] 複数のメソッドに同じパラメータを渡す
[147] クラス変数のアクセサを定義する
[148] 既存のメソッドに機能を追加する
[149] nilや空文字列などを透過的に扱う
[150] 簡単にGzip圧縮する
[151] タイムゾーン付きの日付を使う
[152] メソッドの呼び出し結果をメモ化する
[153] 国際化(日本語化)する

第6章 メール
[154] メールを送信する
[155] メール送信の設定を変更する
[156] 添付メールを送信する
[157] エラーメールの戻り先を設定する
[158] メールの文字化けを防ぐ
[159] 受信メールを扱う

第7章 ActiveResource
[160] ActiveResourceとは
[161] ActiveResourceを利用するための設定をする
[162] リソースを取得する
[163] リソースを作成・更新する
[164] リソースを削除する
[165] 単純なCRUD以外のリクエストを送信する

第8章 テスト
[166] RSpecを組み込む
[167] RSpecの基本的な動作を知る
[168] RSpecで使えるマッチャ
[169] テストを実行する
[170] モデルのテストを実行する
[171] コントローラのテストを実行する
[172] エンドツーエンドのテストを実行する
[173] モックやスタブを使う
[174] その他のテスティングライブラリを利用する

第9章 セキュリティ
[175] XSS攻撃の対策をする
[176] SQLインジェクション攻撃の対策をする
[177] CSRF攻撃の対策をする
[178] Session Fixation攻撃を防ぐ

第10章 デプロイと実行環境
[179] gemファイルを管理する
[180] Passengerを使う
[181] Capistranoを設定する
[182] Capistranoでデプロイする

第11章 ライブラリ
[183] OmniAuthでユーザ認証の仕組みを作る
[184] アップロードされたファイルを扱う
[185] DBの検索結果を複数のページに分けて表示する
[186] 非同期で処理を実行する
[187] I18nの訳語ファイルを自動生成する
[188] Rails用ライブラリを探す
[189] 自分で作ったライブラリをRubyGemsとして公開する
[190] Railsを直す

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑