※本書の販売は終了しました。本書の改訂版『Railsガイド(Rails 7.0対応)』をご利用ください。
関連サイト
本書の関連ページが用意されています。
また、初心者の方向けの『Railsチュートリアル』も好評発売中です。
達人出版会
発行日: 2020-05-20
対応フォーマット: PDF, EPUB, ZIP
内容紹介
前作のRailsチュートリアルに続く第2弾の大型翻訳プロジェクトが、ようやく電子書籍になりました! 前作も約700ページの大作でしたが、今作のRailsガイドは1,000ページをこえる超大作となっています。
本書の特徴は、Railsエンジニア中〜上級者向けのリファレンスに徹している点にあります。Railsチュートリアルが初級者向けに一本道の構成を採っていたのに対し、Railsガイドは機能やトピックごとに詳細を解説する構成を採っています。それぞれの章は独立していて、例えば、Railsチュートリアルでは紹介しきれなかったActive Record・Action View・Action Controllerの様々なメソッドを解説する章や、Rails 4.2から導入されたActive Jobを解説する章、また、Railsをアップグレードするときのポイントを解説する章などがあります。このため、Railsチュートリアルなどの入門書を読み終えてRailsの概観が掴めたら、興味のある機能から調べてみていったり、開発で必要になったトピックから追いかけてみるなどのスタイルで読むことができます。さらに一歩先の世界へ踏み込んでみたいRailsエンジニアにとって、本書は最適なお供になるはずです :)
さらに、本書にはRuby on Railsに貢献する方法を解説する章も含まれています。本書を読み込んでRailsに関する理解が深まったら、今度はRailsコミュニティに一緒に貢献してみませんか? 恐れることはありません。本書には rails/railsにおけるIssueやAPIドキュメントの書き方を解説する章から、Rails本体の開発方法やPull Requestの送り方を解説する章まであるのですから。また、全国に点在する地域Rubyコミュニティに行けば、実際に貢献している方々とお会いしたり相談したりできるかもしれません。貢献することでより深い理解に繋がったり、コミュニティ内での知り合いも増えていくので、ぜひチャレンジしてみてください!
全国のRubyistがOSSコミュニティに貢献するキッカケになれば幸いです。
(「前書き」より)
※ 本書による売り上げは、本書の翻訳・編集に協力して頂いた方々への謝礼金や、ウェブサイトの維持・管理費、および、Railsガイドの継続的な更新費用に使わせて頂きます。Railsガイドの質を高く維持し、継続的に最新の情報にアップデートしていくことで、 全国のRuby/Railsコミュニティの活動に貢献できれば幸いです。ご協力の程、よろしくお願い致します。
書誌情報
- 著者: Ruby on Rails Community(著), 八田 昌三, 金子 雄一郎, 安川 要平, 大城 佳明, 宮城 正栄(訳)
- ページ数: 1031ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: 達人出版会
対象読者
Railsを使いたい方、あるいは本格的に使いこなしたい方、『Railsチュートリアル』を読んだ方(中級〜上級者向け)
著者について
Ruby on Rails Community
原著であるRuby on Rails Guidesは、Railsコミュニティの人達によって制作された大型ドキュメントです。Rails Guides プロジェクトに関わった全ての方に感謝すると共に、2015年7月11日時点で Credits に掲載されているレビュワー、デザイナー、著者を以下に記します。
○レビュワー
・Vijay Dev (@vijay_dev)
・Xavier Noria (@fxn)
○デザイナー
・Jason Zimdars (@jasonzimdars)
○著者
・Ryan Bigg (@ryanbigg)
・Oscar Del Ben (@oscardelben)
・Frederick Cheung (Blog)
・Tore Darell (@toretore)
・Jeff Dean (Software Engineer at Pivotal Labs)
・Mike Gunderloy (@MikeG1)
・Mikel Lindsaar (Founder of reinteractive)
・Cássio Marques (Blog)
・James Miller (Software Developer for JK Tech)
・Pratik Naik (@lifo)
・Emilio Tagua (Co-founder of Eventioz)
・Heiko Webers (Founder of bauland42)
・Akshay Surve (Co-founder at DeltaX)
八田 昌三
90年代にITコンサルタント業界、00年代にローカライズ業界に従事。Ruby on Rails チュートリアル翻訳プロジェクトでは主に翻訳、訳文チェックと Google Tranlsator Toolkit の運用サポートを担当。同チュートリアルを元に日本語のエラーを自動チェックするサービス Enno (http://enno.jp/ ) を Rails4 で構築、2013年9月にリリース。 現在は翻訳業に従事。
金子 雄一郎
株式会社SKIYAKIで働くRailsエンジニア。1987年生まれ。一橋大学商学部卒業。大学卒業後、大手メーカーで経理業務に従事していたが、RubyやOSSコミュニティに出会い、2014年4月にエンジニアに転職。本翻訳プロジェクトでは主に訳文のチェックやテストの実装を担当。翻訳プロジェクトを通じて、docrailsのコミット権を取得し、原著のfix typoなどにも取り組む。
安川 要平
ヤスラボ代表。米国留学後、東京と沖縄を拠点とした事務所「ヤスラボ」を開設し、Ruby/Railsを中心とした開発/教育/翻訳に従事。2012年にIPA未踏スーパークリエータに認定。2014年に共著者の八田と発起したRailsチュートリアルの功績が評価され、フクオカRuby大賞にて優秀賞を受賞。Railsガイド翻訳プロジェクトの共同発起人で、継続的に翻訳する仕組みの構築やウェブ制作、翻訳、広報、編集、電子書籍化などに取り組む。
大城 佳明
1988年生まれ。琉球大学工学部情報工学科卒業。 「分野・地域を越えた実践的情報教育協働ネットワーク」(enPiT)にてRuby on Railsを使い「SharePla」を開発し、BizApp分野ワークショップ優秀プレゼンテーション賞を受賞。ヤスラボでエンジニア兼デザイナーとして働き、Railsチュートリアル、Railsガイドの電子書籍化に貢献。
宮城 正栄
ヤスラボのエンジニア。Okinawa.rbによく出没する。
目次
更新履歴
前書き
原著者
協力者
著作権とライセンス
第1章 Rails をはじめよう
- 1.1 本ガイドの前提条件
- 1.2 Railsとは何か
- 1.3 Railsプロジェクトを新規作成する
- 1.4 Hello, Rails!
- 1.5 アプリケーションの実装と実行
- 1.6 2番目のモデルを追加する
- 1.7 リファクタリング
- 1.8 コメントを削除する
- 1.9 セキュリティ
- 1.10 次に学ぶべきこと
- 1.11 設定の落とし穴
第2章 Active Record の基礎
- 2.1 Active Recordについて
- 2.2 Active RecordにおけるCoC(Convention over Configuration)
- 2.3 Active Recordのモデルを作成する
- 2.4 命名ルールを上書きする
- 2.5 CRUD: データの読み書き
- 2.6 検証(validation)
- 2.7 コールバック
- 2.8 マイグレーション
第3章 Active Record マイグレーション
- 3.1 マイグレーションの概要
- 3.2 マイグレーションを作成する
- 3.3 マイグレーションを自作する
- 3.4 マイグレーションを実行する
- 3.5 既存のマイグレーションを変更する
- 3.6 スキーマダンプの意義
- 3.7 Active Recordと参照整合性
- 3.8 マイグレーションとシードデータ
第4章 Active Record バリデーション
- 4.1 バリデーションの概要
- 4.2 バリデーションヘルパー
- 4.3 共通のバリデーションオプション
- 4.4 厳密なバリデーション
- 4.5 条件付きバリデーション
- 4.6 カスタムバリデーションを実行する
- 4.7 バリデーションエラーに対応する
- 4.8 バリデーションエラーをビューで表示する
第5章 Active Record コールバック
- 5.1 オブジェクトのライフサイクル
- 5.2 コールバックの概要
- 5.3 利用可能なコールバック
- 5.4 コールバックの実行
- 5.5 コールバックをスキップする
- 5.6 コールバックの停止
- 5.7 リレーションシップのコールバック
- 5.8 条件付きコールバック
- 5.9 コールバッククラス
- 5.10 トランザクションコールバック
第6章 Active Record の関連付け (アソシエーション)
- 6.1 関連付けを使用する理由
- 6.2 関連付けの種類
- 6.3 ヒントと注意事項
- 6.4 関連付けの詳細情報
第7章 Active Record クエリインターフェイス
- 7.1 データベースからオブジェクトを取り出す
- 7.2 条件
- 7.3 並び順
- 7.4 特定のフィールドだけを取り出す
- 7.5 LimitとOffset
- 7.6 グループ
- 7.7 Having
- 7.8 条件を上書きする
- 7.9 Nullリレーション
- 7.10 読み取り専用オブジェクト
- 7.11 レコードを更新できないようロックする
- 7.12 テーブルを結合する
- 7.13 関連付けを一括読み込みする
- 7.14 スコープ
- 7.15 動的ファインダ
- 7.16 新しいオブジェクトを検索またはビルドする
- 7.17 SQLで検索する
- 7.18 オブジェクトの存在チェック
- 7.19 計算
- 7.20 EXPLAINを実行する
第8章 Active Model の基礎
- 8.1 はじめに
第9章 Action View の概要
- 9.1 Action Viewについて
- 9.2 Action ViewをRailsで使用する
- 9.3 テンプレート、パーシャル、レイアウト
- 9.4 パーシャルレイアウト
- 9.5 ビューのパス
- 9.6 Action Viewが提供するヘルパーの概要
- 9.7 ローカライズされたビュー
第10章 レイアウトとレンダリング
- 10.1 概要: 部品を組み上げる
- 10.2 レスポンスを作成する
- 10.3 レイアウトを構成する
第11章 Action View フォームヘルパー
- 11.1 基本的なフォームを作成する
- 11.2 モデルオブジェクトの取り扱い
- 11.3 セレクトボックスを簡単に作成する
- 11.4 日付時刻フォームヘルパーを使用する
- 11.5 ファイルのアップロード
- 11.6 フォームビルダーをカスタマイズする
- 11.7 パラメータの命名ルールを理解する
- 11.8 外部リソース用のフォーム
- 11.9 複雑なフォームを作成する
第12章 Action Controller の概要
- 12.1 コントローラの役割
- 12.2 コントローラの命名規則
- 12.3 メソッドとアクション
- 12.4 パラメータ
- 12.5 セッション
- 12.6 Cookies
- 12.7 XMLとJSONデータを描画する
- 12.8 フィルタ
- 12.9 リクエストフォージェリからの保護
- 12.10 リクエストオブジェクトとレスポンスオブジェクト
- 12.11 HTTP認証
- 12.12 ストリーミングとファイルダウンロード
- 12.13 ログをフィルタする
- 12.14 Rescue
- 12.15 HTTPSプロトコルを強制する
第13章 Rails のルーティング
- 13.1 Railsルーターの目的
- 13.2 リソースベースのルーティング: Railsのデフォルト
- 13.3 リソースフルでないルーティング
- 13.4 リソースフルルーティングをカスタマイズする
- 13.5 ルーティングの調査とテスト
第14章 Active Support コア拡張機能
- 14.1 コア拡張機能を読み込む方法
- 14.2 すべてのオブジェクトで使用できる拡張機能
- 14.3 Moduleの拡張
- 14.4 Classの拡張
- 14.5 Stringの拡張
- 14.6 Numericの拡張
- 14.7 Integerの拡張
- 14.8 BigDecimalの拡張
- 14.9 Enumerableの拡張
- 14.10 Arrayの拡張
- 14.11 Hashの拡張
- 14.12 Regexpの拡張
- 14.13 Rangeの拡張
- 14.14 Dateの拡張
- 14.15 DateTimeの拡張
- 14.16 Timeの拡張
- 14.17 Fileの拡張
- 14.18 Marshalの拡張
- 14.19 NameErrorの拡張
- 14.20 LoadErrorの拡張
第15章 Rails国際化(I18n) API
- 15.1 Ruby on RailsにおけるI18nのしくみ
- 15.2 Railsアプリケーションを国際化向けに設定する
- 15.3 アプリケーションを国際化する
- 15.4 I18n API機能の概要
- 15.5 独自の訳文を保存する方法
- 15.6 I18n設定をカスタマイズする
- 15.7 まとめ
- 15.8 Rails I18nへの貢献について
- 15.9 リソース
- 15.10 作者
第16章 Action Mailer の基礎
- 16.1 はじめに
- 16.2 メールを送信する
- 16.3 メールを受信する
- 16.4 Action Mailerのコールバック
- 16.5 Action Mailerヘルパーを使用する
- 16.6 Action Mailerを設定する
- 16.7 メイラーのテスト
- 16.8 メールを配信直前に加工する
第17章 Active Job の基礎
- 17.1 はじめに
- 17.2 Active Jobの目的
- 17.3 ジョブを作成する
- 17.4 ジョブを実行する
- 17.5 キュー
- 17.6 コールバック
- 17.7 ActionMailer
- 17.8 GlobalID
- 17.9 例外
第18章 Railsテスティングガイド
- 18.1 Railsアプリケーションでテストを作成しなければならない理由
- 18.2 テストを導入する
- 18.3 モデルに対する単体テスト
- 18.4 コントローラの機能テスト
- 18.5 結合テスト
- 18.6 Rakeタスクでテストを実行する
- 18.7 Minitestに関する簡単なメモ
- 18.8 SetupとTeardown
- 18.9 ルーティングをテストする
- 18.10 メイラーをテストする
- 18.11 ヘルパーをテストする
- 18.12 その他のテスティングアプローチ
第19章 Rails セキュリティガイド
- 19.1 はじめに
- 19.2 セッション
- 19.3 クロスサイトリクエストフォージェリ (CSRF)
- 19.4 リダイレクトとファイル
- 19.5 イントラネットとAdminのセキュリティ
- 19.6 ユーザー管理
- 19.7 インジェクション
- 19.8 安全でないクエリ生成
- 19.9 デフォルトのヘッダー
- 19.10 利用環境のセキュリティ
- 19.11 追加資料
第20章 Rails アプリケーションのデバッグ
- 20.1 デバッグに利用できるビューヘルパー
- 20.2 ロガー
- 20.3 byebug gemを使用してデバッグする
- 20.4 web-console gemを使用するデバッグ
- 20.5 メモリーリークのデバッグ
- 20.6 デバッグ用プラグイン
- 20.7 参考資料
第21章 Rails アプリケーションを設定する
- 21.1 初期化コードの置き場所
- 21.2 Rails実行前にコードを実行する
- 21.3 Railsコンポーネントを構成する
- 21.4 Rails環境の設定
- 21.5 イニシャライザファイルを使用する
- 21.6 初期化イベント
- 21.7 データベース接続をプールする
第22章 Rails のコマンドラインツール
- 22.1 コマンドラインの基礎
- 22.2 Rake
- 22.3 Railsの高度なコマンドライン
第23章 アセットパイプライン
- 23.1 アセットパイプラインについて
- 23.2 アセットパイプラインの使用方法
- 23.3 development環境の場合
- 23.4 production環境の場合
- 23.5 パイプラインをカスタマイズする
- 23.6 アセットのキャッシュストア
- 23.7 アセットをGemに追加する
- 23.8 ライブラリやGemをプリプロセッサ化する
- 23.9 古いバージョンのRailsからアップグレードする
第24章 Rails で JavaScript を使用する
- 24.1 はじめてのAjax
- 24.2 「控えめなJavaScript」
- 24.3 組み込みヘルパー
- 24.4 サーバー側で考慮すべき点
- 24.5 Turbolinks
- 24.6 その他の情報源
第25章 Rails エンジン入門
- 25.1 Railsにおけるエンジンの役割
- 25.2 エンジンを生成する
- 25.3 エンジンの機能を提供する
- 25.4 アプリケーションにフックする
- 25.5 エンジンをテストする
- 25.6 エンジンの機能を改良する
第26章 Rails の初期化プロセス
- 26.1 起動!
- 26.2 Railsを読み込む
第27章 定数の自動読み込みと再読み込み
- 27.1 はじめに
- 27.2 定数更新
- 27.3 用語説明
- 27.4 自動読み込みが可能となる状況
- 27.5 autoload_paths
- 27.6 自動読み込みのアルゴリズム
- 27.7 require_dependency
- 27.8 定数の再読み込み
- 27.9 Module#autoloadが関与しない場合
- 27.10 よくある落とし穴
第28章 Rails プラグイン作成入門
- 28.1 設定
- 28.2 新しく生成したプラグインをテストする
- 28.3 コアクラスを拡張する
- 28.4 "acts_as"メソッドをActive Recordに追加する
- 28.5 ジェネレータ
- 28.6 gemを公開する
- 28.7 RDocドキュメント
第29章 Rails と Rack
- 29.1 Rack入門
- 29.2 RailsとRack
- 29.3 Action Dispatcherのミドルウェアスタック
- 29.4 参考資料
第30章 Rails ジェネレータとテンプレート入門
- 30.1 ジェネレータとの最初の出会い
- 30.2 初めてジェネレータを作成する
- 30.3 ジェネレータを使用してジェネレータを生成する
- 30.4 ジェネレータが参照するファイル
- 30.5 ワークフローをカスタマイズする
- 30.6 ジェネレータのテンプレートを変更してワークフローをカスタマイズする
- 30.7 ジェネレータにフォールバックを追加する
- 30.8 アプリケーションテンプレート
- 30.9 ジェネレータメソッド
第31章 Ruby on Rails に貢献する方法
- 31.1 issueのレポート
- 31.2 既存のissueの解決を手伝う
- 31.3 Railsのドキュメントに貢献する
- 31.4 Railsのコードに貢献する
- 31.5 Railsコントリビュータ
第32章 Rails コア開発環境の構築方法
- 32.1 おすすめの方法
- 32.2 面倒な方法
第33章 API ドキュメント作成ガイドライン
- 33.1 RDoc
- 33.2 語調
- 33.3 英語
- 33.4 サンプルコード
- 33.5 論理値
- 33.6 ファイル名
- 33.7 フォント
- 33.8 説明のリスト
- 33.9 動的に生成されるメソッド
- 33.10 メソッドの可視性
- 33.11 Railsスタック
第34章 Rails ガイドのガイドライン
- 34.1 マークダウン (Markdown)
- 34.2 プロローグ
- 34.3 タイトル
- 34.4 APIドキュメントの書き方
- 34.5 HTMLガイド
- 34.6 Kindleガイド
第35章 Ruby on Rails のメンテナンスポリシー
- 35.1 新機能
- 35.2 バグ修正
- 35.3 セキュリティ問題
- 35.4 重大なセキュリティ問題
- 35.5 サポート対象外となるリリースシリーズ
第36章 Rails アップグレードガイド
- 36.1 一般的なアドバイス
- 36.2 Rails 4.1からRails 4.2へのアップグレード
- 36.3 Rails 4.0からRails 4.1へのアップグレード
- 36.4 Rails 3.2からRails 4.0へのアップグレード
- 36.5 Rails 3.1からRails 3.2へのアップグレード
- 36.6 Rails 3.0からRails 3.1へのアップグレード
第37章 Ruby on Rails 4.2 リリースノート
- 37.1 Rails 4.2へのアップグレード
- 37.2 主要な変更
- 37.3 非互換性
- 37.4 Railties
- 37.5 Action Pack
- 37.6 Action View
- 37.7 Action Mailer
- 37.8 Active Record
- 37.9 Active Model
- 37.10 Active Support
- 37.11 クレジット表記
第38章 Ruby on Rails 4.1 リリースノート
- 38.1 Rails 4.1へのアップグレード
- 38.2 主要な変更
- 38.3 Railties
- 38.4 Action Pack
- 38.5 Action Mailer
- 38.6 Active Record
- 38.7 Active Model
- 38.8 Active Support
- 38.9 クレジット表記
第39章 Ruby on Rails 4.0 リリースノート
- 39.1 Rails 4.0へのアップグレード
- 39.2 Rails 4.0アプリケーションを作成する
- 39.3 主要な変更
- 39.4 外部gem化された機能
- 39.5 ドキュメント
- 39.6 Railties
- 39.7 Action Mailer
- 39.8 Active Model
- 39.9 Active Support
- 39.10 Action Pack
- 39.11 Active Record
- 39.12 クレジット表記