内容紹介
注目のWebアプリケーションフレームワークRailsによる開発のすべて
Railsは、Webアプリケーションを迅速に開発するための技術をフレームワークとしてまとめたもの。ショッピングサイトやブログサイトをはじめ、多様かつ高度なアプリケーションが短期間で開発できる。本書は、導入からアプリケーションの配備まで、Railsの全体像がまとめられた原書をいち早く翻訳出版するもの。
このような方におすすめ
・Webアプリケーション開発者
・Rubyユーザ
目次
主要目次
日本語版によせて
第1章 はじめに
第I部 はじめてのRails
第2章 Railsアプリケーションのアーキテクチャ
第3章 Railsのインストール
第4章 Hello, Rails!
第II部 アプリケーションを構築する
第5章 Depotアプリケーション
第6章 タスクA:製品の管理
第7章 タスクB:カタログの表示
第8章 タスクC:カートの作成
第9章 タスクD:チェックアウト!
第10章 タスクE:発送
第11章 タスクF:ユーザ管理
第12章 タスクT:テスト
第III部 Railsのフレームワーク
第13章 Rails詳説
第14章 Active Recordの基礎
第15章 Active Recordの詳細
第16章 Action ControllerとRails
第17章 Action View
第18章 Web, V2.0
第19章 Action Mailer
第20章 RailsのWebサービス
第21章 セキュアなRailsアプリケーションの実現
第22章 配置とスケーラビリティ
第IV部 付録
付録A Ruby入門
付録B 設定パラメータ
付録C ソースコード
付録D 参考資料
付録E Rails 1.0での変更点
付録F 日本語を扱うための注意事項
索引
詳細目次
第1章 はじめに
1.1 Railsはアジャイルである
1.2 本書の読み方
Railsのバージョン
1.3 謝辞
Dave Thomasより
David Heinemeier Hanssonより
第2章 Railsアプリケーションのアーキテクチャ
2.1 モデル、ビュー、コントローラ
2.2 Active Record:Railsのモデル
データベース中心のプログラミング手法
ORM(Object/Relational Mapping)
Active Record
2.3 Action Pack:ビューとコントローラ
ビューのサポート
コントローラ
第3章 Railsのインストール
3.1 Windows上へのインストール
3.2 Mac OS X上へのインストール
3.3 UNIX/Linux上へのインストール
3.4 Railsとデータベース
3.5 Railsを最新の状態に保つには
3.6 RailsとISP(インターネットサービスプロバイダ)
第4章 Hello, Rails!
4.1 新しいアプリケーションの作成
4.2 Hello, Rails!
RailsとリクエストURL
最初のアクション
動的な表示
時刻の追加
4.3 リンクによる複数ページの連携
4.4 この章のまとめ
第5章 Depotアプリケーション
5.1 インクリメンタル開発
5.2 Depotの基本仕様
ユースケース
ページフロー
データ
5.3 コーディングの開始
第6章 タスクA:製品の管理
6.1 イテレーションA1:動くものを作る
Railsアプリケーションの作成
データベースの作成
Productsテーブルの作成
アプリケーションの設定
管理アプリケーションの作成
Railsのscaffold
6.2 イテレーションA2:足りない列の追加
6.3 イテレーションA3:検証!
6.4 イテレーションA4:もっと美しく
第7章 タスクB:カタログの表示
7.1 イテレーションB1:カタログリストの作成
7.2 イテレーションB2:ページに装飾を追加
この章のまとめ
第8章 タスクC:カートの作成
8.1 セッション
8.2 テーブルとモデルの追加
8.3 イテレーションC1:カートの作成
カートページの手直し
8.4 イテレーションC2:エラー処理
フラッシュ!
8.5 イテレーションC3:カートの仕上げ
ヘルパー
この章のまとめ
第9章 タスクD:チェックアウト!
9.1 イテレーションD1:注文情報の取得
Railsとフォーム
9.2 イテレーションD2:チェックアウトページでのカート内容の表示
9.3 この章のまとめ
第10章 タスクE:発送
10.1 イテレーションE1:基本的な発送処理
10.2 この章のまとめ
第11章 タスクF:ユーザ管理
11.1 イテレーションF1:ユーザの追加
11.2 イテレーションF2:ログイン
11.3 イテレーションF3:アクセス制限
管理者がひとり残らずいなくなると……
サイドバーの更新
ログアウト
11.4 仕上げ
11.5 参考情報
11.6 この章のまとめ
第12章 タスクT:テスト
12.1 Railsによるテストのサポート
12.2 モデルのテスト
既に用意されている最初のテスト
テスト専用のデータベース
テストフィクスチャ
多対多のアソシエーションに対応したフィクスチャ
作成と読み込み
更新
テストデータのライフサイクル
行の削除
検証
テストの柔軟性の維持
モデルのビジネスルールのテスト
動的フィクスチャ
フィクスチャによるデータの共有
テストヘルパー
カスタムアサーション
12.3 コントローラのテスト
ログイン
管理者のみがアクセス可能なIndexページ
ログイン:無効なユーザ
ログイン:有効なユーザ
機能テストのために用意されている便利なメソッドと変数
HTTPリクエストメソッド
アサーション
変数
とにかく何か買ってみましょう!
販売可能商品のリストの表示
カートへの追加
チェックアウト!
注文の保存
12.4 モックオブジェクトの使用
12.5 テスト駆動開発
12.6 Rakeによるテストの実行
テスト用データベースの作成
テストの実行
スケジュール設定による継続的なビルド
統計の生成
12.7 パフォーマンステスト
トランザクションフィクスチャ
プロファイリングとベンチマーク
12.8 この章のまとめ
第13章 Rails詳説
13.1 Railsコンポーネント
13.2 ディレクトリ構造
13.3 Railsの設定
実行時環境
データベース接続の設定
環境による設定
ロードパス
アプリケーション全体のリソース
設定パラメータ
13.4 命名規約
大文字/小文字の混在、アンダースコア、複数形
コントローラをグループ化したモジュール
13.5 Active Support
数値の拡張
時刻の拡張
文字列の拡張
13.6 Railsのログ出力機能
13.7 デバッグのヒント
13.8 これから先の各章について
第14章 Active Recordの基礎
14.1 テーブルとクラス
14.2 列と属性
属性へのアクセス
ブール型の属性
構造化データの保存
14.3 主キーとID
14.4 データベースへの接続
14.5 作成、読み込み、更新、削除
新しい行の作成
既存の行の読み込み
SQLとActive Record
強力なfind()
行のカウント
動的ファインダ
データの再読み込み
既存の行の更新
save()とsave!()
楽観的ロック
行の削除
14.6 テーブル間のリレーションシップ
外部キーの作成
リレーションシップの指定
1対1のアソシエーション
1対多のアソシエーション
多対多のアソシエーション
has_and_belongs_to_many()宣言
自己参照結合
子行のプリロード
カウンタ
14.7 トランザクション
組み込みのトランザクション
マルチデータベーストランザクション
第15章 Active Recordの詳細
15.1 Acts As
Acts As List
Acts As Tree
15.2 集約
合成オブジェクトは値オブジェクト
15.3 単一テーブル継承
15.4 検証
検証ヘルパー
15.5 コールバック
レコードのタイムスタンプ処理
コールバックオブジェクト
オブザーバ
15.6 拡張属性
Facade列
15.7 その他の話題
オブジェクトの識別
raw接続の使用
IDが欠落しているケース
特別な列名
第16章 Action ControllerとRails
16.1 コンテキストと依存関係
16.2 基礎
16.3 リクエストのルーティング
URLの生成
コントローラの命名
名前付きルート
16.4 アクションメソッド
コントローラの環境
ユーザへのレスポンス
テンプレートのレンダリング
ファイルや他のデータの送信
リダイレクト
16.5 cookieとセッション
Railsのセッション
セッションストレージ
セッションストレージオプションの比較
セッションの失効とクリーンアップ
16.6 フラッシュ――アプリケーション間のコミュニケーション
16.7 フィルタと認証
beforeフィルタとafterフィルタ
afterフィルタとレスポンスの変更
aroundフィルタ
フィルタの継承
検証
16.8 キャッシュ――その1
キャッシュする内容
ページの失効
16.9 GETリクエストの問題点
GET問題の解決
第17章 Action View
17.1 テンプレート
テンプレートの場所
テンプレートの環境
テンプレートの内容
17.2 Builderテンプレート
17.3 RHTMLテンプレート
値の置換のエスケープ
17.4 ヘルパー
ヘルパーの共有
17.5 フォーマットヘルパー
17.6 他のページおよびリソースへのリンク
17.7 ページネーション
17.8 フォームのヘルパー
フォームのヘルパー
フィールドのヘルパー
Railsアプリケーションへのファイルのアップロード
エラー処理とモデルオブジェクト
非モデルフィールドとの連携
17.9 レイアウトとコンポーネント
レイアウト
レイアウトファイルの検索
レイアウトへのデータの供給
部分的なページテンプレート
部分テンプレートとコレクション
部分テンプレートの共有
部分テンプレートとコントローラ
コンポーネント
17.10 キャッシュ――その2
キャッシュされたフラグメントの失効
フラグメントのキャッシュストレージオプション
17.11 新しいテンプレートシステムの追加
動的テンプレートの作成
第18章 Web, V2.0
18.1 AJAXの紹介
XMLHttpRequest
AJAXのA
18.2 Railsのやり方
link_to_remote
舞台裏
form_remote_tag()
オブザーバ
定期的な更新
18.3 ユーザインタフェース、再び
DOM操作
視覚効果
1回限りの効果
繰り返し呼び出し可能な効果
18.4 高度なテクニック
置換テクニック
さらにコールバックについて
進捗インジケータ
複数回の更新
リストの動的な更新
AJAXなしでの視覚効果
テスト
下位互換性
AJAXによって呼び出されたか?
AJAXへの標準HTMLリンクの追加
戻るボタンの問題
Web V2.1
第19章 Action Mailer
19.1 電子メールの送信
電子メールの設定
電子メールの送信
電子メールテンプレート
電子メールの生成
HTML形式の電子メールの送信
19.2 電子メールの受信
19.3 電子メールのテスト
電子メールのユニットテスト
電子メールの機能テスト
第20章 RailsのWebサービス
20.1 AWSとは何か(何ではないか)
20.2 APIの定義
メソッドのシグネチャ
パラメータ指定子の形式
基本パラメータ型
構造化パラメータ型
20.3 ディスパッチモード
直接ディスパッチ
階層化ディスパッチ
委譲ディスパッチ
20.4 別のディスパッチの使用
階層化ディスパッチモード
委譲ディスパッチの実装
20.5 メソッド呼び出しのインターセプト
20.6 Webサービスのテスト
外部クライアントアプリケーション(SOAP)
外部クライアントアプリケーション(XML-RPC)
20.7 AWSのクライアント
第21章 セキュアなRailsアプリケーションの実現
21.1 SQLインジェクション
SQLインジェクションに対する保護
クエリを抽出したモデルメソッドの作成
21.2 クロスサイトスクリプティング(CSS/XSS)
典型的な攻撃
XSS攻撃に対するアプリケーションの保護
エコーサービスを使用したXSS攻撃
21.3 セッション固定攻撃の回避
21.4 フォームパラメータを直接使ったレコードの作成
21.5 IDパラメータのみに頼った検索の危険性
21.6 公開されているコントローラメソッドの直接的な呼び出し
21.7 ファイルのアップロード
21.8 認証後のページキャッシュの弊害
21.9 テストによる検証
第22章 配置とスケーラビリティ
22.1 本番用プラットフォームの選択
Webサーバの選択
アプリケーションの動作方法の選択
22.2 3つの環境
本番環境への切り換え
22.3 本稼働後の作業
エラーへの対処
変更の適用
コンソールを使ったアプリケーションの調査
22.4 保守
ログファイル
セッションの整理
22.5 スケーラビリティ:シェアナッシングアーキテクチャ
Railsをシェアナッシング環境にする方法
22.6 ボトルネックの見極めと対処
tailを使った常時監視
tail以外のツール
22.7 ケーススタディ:走り続けるRails
37signalsが運営するBasecamp(www.basecamphq.com)
Robot Co-opが運営する43 Things(www.43things.com)
金融機関向け身元確認サービス(www.rapidreporting.com)
付録A Ruby入門
A.1 Rubyはオブジェクト指向言語
A.2 Rubyにおける名前
A.3 メソッド
A.4 クラス
privateとprotected
A.5 モジュール
A.6 配列とハッシュ
ハッシュとパラメータリスト
A.7 制御構造
A.8 正規表現
A.9 ブロックとイテレータ
A.10 例外
A.11 オブジェクトのマーシャリング
A.12 irb
A.13 Rubyイディオム
A.14 RDocドキュメンテーション
付録B 設定パラメータ
B.1 Active Recordの設定
B.2 Action Packの設定
B.3 Action Mailerの設定
B.4 テストケースの設定
付録C ソースコード
C.1 Depotアプリケーションの全コード
データベースファイル
コントローラ
モデル
ビュー
ヘルパー
ユニットテストおよび機能テスト
テストデータ
ユニットテスト
機能テスト
パフォーマンステスト
CSSファイル
C.2 サンプルシステム通知処理
C.3 コードサンプルのクロスリファレンス
付録D 参考資料
D.1 オンラインの参考資料
D.2 参考図書
付録E Rails 1.0での変更点
E.1 新しい設定方法
E.2 追加された設定項目
Active Recordの設定
Action Packの設定
Inflectorの設定
E.3 Rakefile
E.4 スクリプト
E.5 プラグイン
E.6 マイグレーション
スキーマの変更
スキーマ変更メソッド
データの変更
スキーマを特定のバージョンに戻す
スキーマのダンプとインポート
付録F 日本語を扱うための注意事項
F.1 $KCODE
F.2 charsetパラメータ
F.3 データベースの設定
F.4 日本語化/国際化のためのツール
続きを見る