※最新版の『Ruby on Rails チュートリアル第6版:実例を使ってRailsを学ぼう』が販売中です。
関連サイト
本書の関連サイトがあります。
- Rails チュートリアル: http://railstutorial.jp/
- ヘルプページ: http://railstutorial.jp/help
また、本書よりさらに踏み込んだRuby on Rails公式ガイド、『Railsガイド』も好評発売中です。
達人出版会
発行日: 2015-07-11
対応フォーマット: PDF, EPUB
内容紹介
本書は、Rails 創始者の David Heinemeier Hansson に推奨され、世界中で利用されている Ruby on Rails Tutorial の和訳本です。
本書では、Twitter のようなマイクロブログサービスを題材にして、実際に手を動かしながら学んでいく、チュートリアル形式を採用しています。また、本書は実践的な内容を重視しているので、Ruby や Rails を学べるだけでなく、アプリケーションの品質を高くするためのテストツール (RSpec) や、他人と一緒に開発するためのバージョン管理システム (Git/GitHub)、そして、作ったアプリケーションを公開するプラットフォーム (Heroku) の使い方なども学べます。したがって、本書を読み終える頃には、ウェブサービスの開発から公開までの一連の流れを、体験を通して理解できるようになります。
さらに、原著と同様に、本書はウェブ上から無料で読めるようになっています。 いつでも無料で最新版が読めるので、Rails 開発を学びたい個人だけでなく、 企業研修や勉強会などの教材としても気軽に使うことができます。
本書が Rails の学習・習得や、ウェブサービスの開発・公開の一助になれば嬉しいです。
※ 本書による売り上げは、本書の翻訳に協力して頂いた方々への謝礼金や、 ウェブサイトの維持・管理費、および、Rails チュートリアルの継続的な更新費用に使わせて頂きます。 Rails チュートリアルの質を高く維持し、継続的に最新の情報にアップデートしていくことで、 全国の Ruby/Rails コミュニティの活動に貢献できれば幸いです。ご協力、よろしくお願いします。
書誌情報
- 著者: Michael Hartl, 安川 要平(翻訳), 八田 昌三(翻訳), 他
- ページ数: 709ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB, ZIP
- 出版社: 達人出版会
対象読者
プログラミング初級者以上の方で、Ruby/Rails を使ってウェブサービスを開発・公開してみたい方。実例を使ってテスト駆動開発を学びたい方。他のプログラミング言語を使ったことがあり、Ruby/Rails に乗り換えようと考えている方。
著者について
Michael Hartl
マイケル・ハートル (Michael Hartl) は、Ruby on Rails チュートリアルという、Ruby on Rails を使って初めて Web アプリケーションを開発する際に最もよく参考にされるチュートリアルの著者です。以前は、(今ではすっかり古くなってしまいましたが)「RailsSpace」という本の執筆および開発に携わったり、また、一時人気を博した Ruby on Rails ベースのソーシャルネットワーキングプラットフォーム「Insoshi」の開発にも携わっていました。なお、2011 年には、Rails コミュニティへの高い貢献が認められて、Ruby Hero Award を受賞しました。ハーバード大学卒業後、カリフォルニア工科大学で物理学博士号を取得し、起業プログラム Y Combinator の卒業生でもあります。
安川 要平
ヤスラボ代表。米国留学後、東京と沖縄を拠点とした事務所「ヤスラボ」を開設し、Ruby/Railsを中心とした開発/教育/翻訳に従事。2012年にIPA未踏スーパークリエータに認定。2013年にTEDxRyukyuに登壇。2014年に共著者の八田と発起したRailsチュートリアルの功績が評価され、フクオカRuby大賞にて優秀賞を受賞。Railsチュートリアルでは、ディレクション・渉外・翻訳・デザイン・開発・サーバ管理・読者対応などなど、大体何でも担当。
八田 昌三
90年代にITコンサルタント業界、00年代にローカライズ業界に従事。Ruby on Rails チュートリアル翻訳プロジェクトでは主に翻訳、訳文チェックと Google Tranlsator Toolkit の運用サポートを担当。同チュートリアルを元に日本語のエラーを自動チェックするサービス Enno ( http://enno.jp/ ) を Rails4 で構築、2013年9月にリリース。 同月、ビヨンド・パースペクティブ・ソリューションズ株式会社に転職。
目次
更新履歴
前書き
- 謝辞
- 著者
- 著作権とライセンス
和訳について
- 困ったときの対処法
- Rails 3.2/4.0 のどっちから始めるべき?
- ライセンス
- 謝辞
第1章 ゼロからデプロイまで
- 1.1 はじめに
- 1.1.1 読者の皆さまへ
- 1.1.2 Railsと「スケール」について
- 1.1.3 この本における取り決め
- 1.2 さっそく動作させる
- 1.2.1 開発環境
- 1.2.2 Ruby、RubyGems、Rails、Git
- 1.2.3 最初のアプリケーション
- 1.2.4 Bundler
- 1.2.5 rails server
- 1.2.6 Model-View-Controller (MVC)
- 1.3 Gitによるバージョン管理
- 1.3.1 インストールとセットアップ
- 1.3.2 追加とコミット
- 1.3.3 Gitのメリット
- 1.3.4 GitHub
- 1.3.5 ブランチ (branch)、変更 (edit)、 コミット (commit)、マージ (merge)
- 1.4 デプロイする
- 1.4.1 Herokuのセットアップ
- 1.4.2 Herokuにデプロイする (1)
- 1.4.3 Herokuにデプロイする (2)
- 1.4.4 Herokuコマンド
- 1.5 最後に
第2章 デモアプリケーション
- 2.1 アプリの計画
- 2.1.1 ユーザーのモデル設計
- 2.1.2 マイクロポストのモデル設計
- 2.2 Users リソース
- 2.2.1 ユーザーページを表示する
- 2.2.2 MVCの挙動
- 2.2.3 Users リソースの欠点
- 2.3 Mircroposts リソース
- 2.3.1 マイクロポストのページを表示する
- 2.3.2 マイクロポストをマイクロにする
- 2.3.3 ユーザーとマイクロポストをhas_manyで関連づける
- 2.3.4 継承の階層
- 2.3.5 デモアプリケーションのデプロイ
- 2.4 最後に
第3章 ほぼ静的なページの作成
- 3.1 静的ページ
- 3.2 最初のテスト
- 3.2.1 テスト駆動開発
- 3.2.2 ページの追加
- 3.3 少しだけ動的なページ
- 3.3.1 タイトル変更をテストする
- 3.3.2 タイトルのテストをパスさせる
- 3.3.3 埋め込みRuby
- 3.3.4 レイアウトを使って重複を解消する
- 3.4 最後に
- 3.5 演習
- 3.6 高度なセットアップ
- 3.6.1 bundle execを追放する
- 3.6.2 Guardによるテストの自動化
- 3.6.3 Spork を使ったテストの高速化
- 3.6.4 Sublime Text上でテストする
第4章 Rails風味のRuby
- 4.1 動機
- 4.2 文字列(string)とメソッド
- 4.2.1 コメント
- 4.2.2 文字列
- 4.2.3 オブジェクトとメッセージ受け渡し
- 4.2.4 メソッドの定義
- 4.2.5 title ヘルパー、再び
- 4.3 他のデータ構造
- 4.3.1 配列と範囲演算子
- 4.3.2 ブロック
- 4.3.3 ハッシュとシンボル
- 4.3.4 CSS、再び
- 4.4 Ruby におけるクラス
- 4.4.1 コンストラクタ
- 4.4.2 クラス継承
- 4.4.3 組込みクラスの変更
- 4.4.4 コントローラクラス
- 4.4.5 ユーザークラス
- 4.5 最後に
- 4.6 演習
第5章 レイアウトを作成する
- 5.1 構造を追加する
- 5.1.1 ナビゲーション
- 5.1.2 BootstrapとカスタムCSS
- 5.1.3 パーシャル (partial)
- 5.2 SassとAsset Pipeline
- 5.2.1 Asset Pipeline
- 5.2.2 素晴らしい構文を備えたスタイルシート
- 5.3 レイアウトのリンク
- 5.3.1 ルートのテスト
- 5.3.2 Railsのルート
- 5.3.3 名前付きルート
- 5.3.4 RSpecを洗練させる
- 5.4 ユーザー登録: 最初のステップ
- 5.4.1 Usersコントローラ
- 5.4.2 ユーザー登録用URL
- 5.5 最後に
- 5.6 演習
第6章 ユーザーのモデルを作成する
- 6.1 Userモデル
- 6.1.1 データベースの移行
- 6.1.2 modelファイル
- 6.1.3 ユーザーオブジェクトを作成する
- 6.1.4 ユーザーオブジェクトを検索する
- 6.1.5 ユーザーオブジェクトを更新する
- 6.2 ユーザーを検証する
- 6.2.1 最初のユーザーテスト
- 6.2.2 プレゼンスを検証する
- 6.2.3 長さを検証する
- 6.2.4 フォーマットを検証する
- 6.2.5 一意性を検証する
- 6.3 セキュアなパスワードを追加する
- 6.3.1 暗号化されたパスワード
- 6.3.2 パスワードと確認
- 6.3.3 ユーザー認証
- コラム 6.3 letメソッド
- 6.3.4 ユーザーがセキュアなパスワードを持っている
- 6.3.5 ユーザーを作成する
- 6.4 最後に
- 6.5 演習
第7章 ユーザー登録
- 7.1 ユーザーを表示する
- 7.1.1 デバッグとRails環境
- 7.1.2 ユーザーリソース
- 7.1.3 ファクトリーを使用してユーザー表示ページをテストする
- 7.1.4 gravatar画像とサイドバー
- 7.2 ユーザー登録フォーム
- 7.2.1 ユーザー登録のためのテスト
- 7.2.2 form_forを使用する
- 7.2.3 フォームHTML
- 7.3 ユーザー登録失敗
- 7.3.1 正しいフォーム
- 7.3.2 Strong Parameters
- 7.3.3 ユーザー登録のエラーメッセージ
- 7.4 ユーザー登録成功
- 7.4.1 登録フォームの完成
- 7.4.2 flash
- 7.4.3 実際のユーザー登録
- 7.4.4 SSLを導入して本番環境をデプロイする
- 7.5 最後に
- 7.6 演習
第8章 サインイン、サインアウト
- 8.1 セッション、サインインの失敗
- 8.1.1 Sessionコントローラ
- 8.1.2 サインインをテストする
- 8.1.3 サインインのフォーム
- 8.1.4 確認フォームを送信する
- 8.1.5 フラッシュメッセージを表示する
- 8.2 サインイン成功
- 8.2.1 [このアカウント設定を保存する]
- 8.2.2 正しいsign_inメソッド
- 8.2.3 現在のユーザー
- 8.2.4 レイアウトリンクを変更する
- 8.2.5 ユーザー登録と同時にサインインする
- 8.2.6 サインアウトする
- 8.3 Cucumberの紹介 (オプション)
- 8.3.1 インストールと設定
- 8.3.2 フィーチャーとステップ
- 8.3.3 対比: RSpecのカスタムマッチャー
- 8.4 最後に
- 8.5 演習
第9章 ユーザーの更新・表示・削除
- 9.1 ユーザーを更新する
- 9.1.1 編集フォーム
- 9.1.2 編集の失敗
- 9.1.3 編集の成功
- 9.2 認可
- 9.2.1 ユーザーのサインインを要求する
- 9.2.2 正しいユーザーを要求する
- 9.2.3 フレンドリーフォワーディング
- 9.3 すべてのユーザーを表示する
- 9.3.1 ユーザーインデックス
- 9.3.2 サンプルのユーザー
- 9.3.3 ページネーション
- 9.3.4 パーシャルのリファクタリング
- 9.4 ユーザーを削除する
- 9.4.1 管理ユーザー
- 9.4.2 destroyアクション
- 9.5 最後に
- 9.6 演習
第10章 ユーザーのマイクロポスト
- 10.1 Micropostモデル
- 10.1.1 基本的なモデル
- 10.1.2 最初の検証
- 10.1.3 User/Micropostの関連付け
- 10.1.4 マイクロポストを改良する
- 10.1.5 コンテンツの検証
- 10.2 マイクロポストを表示する
- 10.2.1 ユーザー表示ページの拡張
- 10.2.2 マイクロポストのサンプル
- 10.3 マイクロポストを操作する
- 10.3.1 アクセス制御
- 10.3.2 マイクロポストを作成する
- 10.3.3 フィードの原型
- 10.3.4 マイクロポストを削除する
- 10.4 最後に
- 10.5 演習
第11章 ユーザーをフォローする
- 11.1 Relationshipモデル
- 11.1.1 データモデルの問題 (および解決策)
- 11.1.2 User/relationshipの関連付け
- 11.1.3 検証
- 11.1.4 フォローしているユーザー
- 11.1.5 フォロワー
- 11.2 フォローしているユーザー用のWebインターフェイス
- 11.2.1 フォローしているユーザーのサンプルデータ
- 11.2.2 統計とフォロー用フォーム
- 11.2.3 「フォローしているユーザー」ページと「フォロワー」ページ
- 11.2.4 [フォローする] ボタン (標準的な方法)
- 11.2.5 [フォローする] ボタン (Ajax)
- 11.3 ステータスフィード
- 11.3.1 動機と計画
- 11.3.2 フィードを初めて実装する
- 11.3.3 サブセレクト
- 11.3.4 新しいステータスフィード
- 11.4 最後に
- 11.4.1 サンプルアプリケーションの機能を拡張する
- 11.4.2 読み物ガイド
- 11.5 演習