関連サイト
本書の関連ページが用意されています。
内容紹介
定番から旬の一品までテクニック満載。Ruby on Railsの定番リファレンスとして好評を博したレシピブックが、装いも新たにRails 3版として登場。日本のRails開発の第一人者である松田明氏を加え、Rails 3.1に世界最速対応する。定番からRails 3系の新機能まで、これからのRailsの使い方がわかる
【『Rails3レシピブック』サポートページ】http://rails3recipebook.github.com/
書誌情報
- 著者: 高橋征義, 松田明, 諸橋恭介
- 発行日: 2012-01-17 (紙書籍版発行日: 2011-07-30)
- 最終更新日: 2012-01-17
- バージョン: 1.0.0
- ページ数: 499ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: SBクリエイティブ
対象読者
Railsで開発をされている方、Railsに興味のある方
著者について
高橋征義
札幌出身。Web制作会社にてプログラマとしてWebアプリケーション開発に携わるかたわら、日本Rubyの会を設立、現在まで同会会長。2010年6月に電子書籍の制作と販売を手がける株式会社達人出版会を創業、代表取締役を務める。1人でサービスができるのはRailsとgitとCapistranoのおかげだと信じている。好きな作家は新井素子。
松田明
ジンバブエ共和国出身、浅草在住。職業はフリーランスのRailsプログラマー/流しのフェロー。地域Ruby コミュニティ「Asakusa.rb」主宰。Kaminari、i18n_generatorsなどのGem の作者。趣味は、おいしいものを飲んだり食べたりすることと、Rails を読んだり書いたりすること。好きなActiveSupportのメソッドはObject#try。
諸橋恭介
宮城県出身。株式会社永和システムマネジメントにてRuby やRails を使ったプロジェクトに参加している。Railsは2006年から実務で使用しており、近頃ではRailsプロジェクトへの技術コンサルのような仕事もしている。RSpecやCucumberを使ったTDDに興味があったので、おそらく日本初のCucumberの書籍も書いた(達人出版会より、電子書籍)。好きなメソッドはObject#extend。
目次
第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] <a>タグを作成する
- [107] <img>タグを作成する
- [108] レイアウトを使ってテンプレートを分割する
- [109] ネストしたレイアウトファイルを使う
- [110] スタイルシートやJavaScriptを読み込む
- [111] 分割されたテンプレートを描画する
- [112] モデルに対応するフォームを作成する
- [113] モデルに対応したフォーム内で入力項目を作成する
- [114] 任意のフォームを作成する
- [115] ラベルを作成する
- [116] フォームに日付や時刻の入力項目を作成する
- [117] フォームの二度押しを防ぐ
- [118] フォームにドロップダウンリスト(<select>タグ)を作成する
- [119] モデルのコレクションからドロップダウンリスト(<select>タグ)を作成する
- [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を直す