| 
 
 
 
 
 | 
	
		【カテゴリ】 Ruby
	
	
	
	 
 
	
		
			Ruby on Rails 5アプリケーションプログラミング  
					サポート終了
			
 
|  | 
		山田祥寛/著
		株式会社  技術評論社/発行
 定価
		3,960円
 B5変版・
		608ページ・
		1色
 ISBN 978-4-7741-8883-6
 発刊日:
		2017年4月14日
 
 ![[Amazon.co.jpからオンライン購入する]](https://wings.msn.to/image/buy.gif)  |  
	 
 
	本書の特徴
	 
 
	Rails解説書。増補改訂で最新バージョン5に対応!初心者にもわかりやすく、Scaffolding機能から、ビュー/モデル/コントローラ開発、ルーティング、テスト、クライアントサイド開発まで、Railsの主要機能を徹底解説しています。クライアントサイド開発で必要となるCoffeeScriptやSCSSについても扱っています。
 書籍掲載のサンプルは、サポートページからダウンロード可能です。
 
 
		まとめて読んで 更にスキルアップのこんな書籍
	・Rubyを基礎からがっちり学びたいなら「独習Ruby 新版」(翔泳社)・Railsの基本を素早く学びたいなら「たった1日で基本が身に付く!Ruby on Rails 超入門」(技術評論社)・Rubyの基礎を学ぶなら「3ステップでしっかり学ぶ Ruby入門」(技術評論社)・JavaScriptを基礎からガッチリ「改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで」(技術評論社)・SQLを使いこなそう「書き込み式SQLのドリル 改訂新版」(日経BP) 
 
		本書について取り上げていただいたブログさま
					
				・無限大な夢のあと - 
					noimpslmtbrkさま
				
				Ruby on Rails 5 アプリケーションプログラミング 書評(2017年5月26日)
				・tchikuba's blog - 
					tchikubaさま
				
				【書籍レビュー】Ruby on Rails 5 アプリケーションプログラミングを献本頂きました(2017年5月22日)
				・deadwood - 
					DriftwoodJPさま
				
				[書評・読書メモ] v5.0 対応「Ruby on Rails 5アプリケーションプログラミング」(2017年5月21日)
				・呑兵衛プログラマの日常 - 
					niwakenさま
				
				【書評】Ruby on Rails5 アプリケーションプログラミング(2017年5月20日)
				・CodeZine - 
					CodeZine編集部さま
				
				【新刊紹介】『Ruby on Rails 5アプリケーション プログラミング』4月14日発売、600ページ超のボリュームで主要機能を徹底解説(2017年4月07日) 
 
	
	| Contents |  
	| 
		
 
	第1章 イントロダクション
		1.1 Railsというフレームワーク1.1.1 アプリケーションフレームワークとは
 1.1.2 フレームワーク導入の利点
 1.1.3 Rubyで利用可能なフレームワーク
 1.2 Railsを利用するための環境設定
 1.2.1 Railsプログラミングに必要なソフトウェア
 1.2.2 Windowsにおける環境設定の手順
 1.2.3 Linuxにおける環境設定の手順
 1.2.4 サンプルの配置方法(Windows/Linux共通)
 
第2章 Ruby on Railsの基本
		2.1 アプリの作成2.2 コントローラーの基本
 2.2.1 コントローラークラスの作成
 2.2.2 コントローラークラスの基本構文
 2.2.3 ルーティングの基礎を理解する
 2.2.4 サンプルの実行
 2.2.5 補足:コントローラーの命名規則
 2.3 ビューの基本
 2.3.1 テンプレート変数の設定
 2.3.2 テンプレートファイルの作成
 2.3.3 サンプルの実行
 2.3.4 補足:共通レイアウトの適用
 2.3.5 補足:コメント構文
 2.4 モデルの基本
 2.4.1 O/Rマッパーとは?
 2.4.2 データベース接続の設定
 2.4.3 モデルクラスの作成
 2.4.4 マイグレーションファイルによるテーブルの作成
 2.4.5 フィクスチャによるテストデータの準備
 2.4.6 補足:データベースクライアントの起動
 2.4.7 データ取得の基本
 2.4.8 補足:アプリの実行環境を指定する
 2.5 Railsの設定情報
 2.5.1 主な設定ファイルの配置
 2.5.2 利用可能な主な設定パラメーター
 2.5.3 アプリ固有の設定を定義する
 
第3章 Scaffolding機能によるRails開発の基礎
		3.1 Scaffolding機能によるアプリ開発3.1.1 Scaffolding開発の手順
 3.1.2 自動生成されたルートを確認する — resourcesメソッド
 3.2 一覧画面の作成(indexアクション)
 3.2.1 indexアクションメソッド
 3.2.2 index.html.erbテンプレート
 3.3 詳細画面の作成(showアクション)
 3.3.1 showアクションメソッド
 3.3.2 show.html.erbテンプレート
 3.4 新規登録画面の作成(new/createアクション)
 3.4.1 new.html.erbテンプレートファイル
 3.4.2 new/createアクションメソッド
 3.5 編集画面の作成(edit/updateアクション)
 3.5.1 edit/updateアクションメソッド
 3.5.2 edit.html.erbテンプレートファイル
 3.6 削除機能の確認(destroyアクション)
 3.7 準備:本書で使用するデータベース
 3.7.1 データベースの構造
 3.7.2 データベースの準備
 
第4章 ビュー開発
		4.1 フォーム関連のビューヘルパー4.1.1 フォーム生成の基礎
 4.1.2 汎用的なフォームを出力する — form_tag メソッド
 4.1.3 モデル編集のためのフォームを生成する(1)— form_tagメソッド
 4.1.4 モデル編集のためのフォームを生成する(2)— form_for メソッド
 4.1.5 <input>、<textarea>要素を生成する — xxxxx_field、text_area、radio_button、check_boxメソッド
 4.1.6 HTML5対応の<input>要素を生成する — xxxxx_fieldメソッド(2)
 4.1.7 選択ボックス/リストボックスを生成する — selectメソッド
 4.1.8 データベースの情報をもとに選択肢を生成する — collection_selectメソッド
 4.1.9 選択ボックスの選択肢をグループ化する — grouped_collection_selectメソッド
 4.1.10 モデルと関連付かない選択ボックスを生成する — select_tagメソッド
 4.1.11 日付/時刻選択のための選択ボックスを生成する — xxxxx_selectメソッド
 4.1.12 データベースの情報をもとにラジオボタン/チェックボックスを生成する — collection_radio_buttons/collection_check_boxesメソッド
 4.1.13 その他のフォーム系ヘルパー
 4.2 文字列/数値関連のビューヘルパー
 4.2.1 改行文字を<p>/<br>要素で置き換える — simple_formatメソッド
 4.2.2 文字列を指定桁で切り捨てる — truncateメソッド
 4.2.3 文字列から特定の部分のみを抜粋する — excerptメソッド
 4.2.4 テーブルやリストの背景色をn行おきに変更する — cycleメソッド
 4.2.5 特定のキーワードをハイライト表示する — highlightメソッド
 4.2.6 スクリプトブロックの中に出力コードを埋め込む — concatメソッド
 4.2.7 文字列をHTMLエスケープする — h/rawメソッド
 4.2.8 文字列から要素を除去する — sanitizeメソッド
 4.2.9 文字列を整形する — sprintfメソッド
 4.2.10 数値をさまざまな形式で加工する — number_xxxxxメソッド
 4.2.11 日付データを整形する — strftimeメソッド
 4.3 リンク関連のビューヘルパー
 4.3.1 ハイパーリンクを生成する — link_toメソッド
 4.3.2 ルート定義から動的にURLを生成する — url_forメソッド
 4.3.3 条件に応じてリンクを生成する — link_to_if/link_to_unlessメソッド
 4.3.4 現在のページの場合はリンクを無効にする — link_to_unless_currentメソッド
 4.3.5 メールアドレスへのリンクを生成する — mail_toメソッド
 4.4 外部リソース指定のためのビューヘルパー
 4.4.1 画像を表示する — image_tagメソッド
 4.4.2 音声/動画をブラウザーで再生する — audio_tag/video_tagメソッド
 4.4.3 ブラウザーのフィード検出機能を有効にする — auto_discovery_link_tagメソッド
 4.4.4 サイトのFavicon を定義する — favicon_link_tagメソッド
 4.4.5 外部リソースのパスを取得する — xxxxx_pathメソッド
 4.5 その他のビューヘルパー
 4.5.1 構造化データをダンプ出力する — debugメソッド
 4.5.2 出力結果を変数に格納する — captureメソッド
 4.5.3 本体を持たない任意の要素を生成する — tagメソッド
 4.5.4 本体を持つ任意の要素を生成する — content_tagメソッド
 4.6 ビューヘルパーの自作
 4.6.1 シンプルなビューヘルパー
 4.6.2 HTML文字列を返すビューヘルパー
 4.6.3 本体を持つビューヘルパー
 4.7 アプリ共通のデザインを定義する ー レイアウト
 4.7.1 レイアウトを適用するさまざまな方法
 4.7.2 ページ単位でタイトルを変更する
 4.7.3 レイアウトに複数のコンテンツ領域を設置する
 4.7.4 レイアウトを入れ子に配置する
 4.8 テンプレートの一部をページ間で共有する ー 部分テンプレート
 4.8.1 部分テンプレートの基本
 4.8.2 部分テンプレートにパラメーターを引き渡す
 4.8.3 部分テンプレートにレイアウトを適用する — パーシャルレイアウト
 4.8.4 コレクションに繰り返し部分テンプレートを適用する — collectionオプション
 
第5章 モデル開発
		5.1 データ取得の基本 — findメソッド5.1.1 主キー列による検索
 5.1.2 任意のキー列による検索 — find_byメソッド
 5.2 より複雑な条件での検索を行う — クエリメソッド
 5.2.1 クエリメソッドの基礎
 5.2.2 基本的な条件式を設定する — whereメソッド
 5.2.3 プレイスホルダーによる条件式の生成 — whereメソッド(2)
 5.2.4 名前付きパラメーターと名前なしパラメーター
 5.2.5 否定の条件式を表す — notメソッド
 5.2.6 条件式を論理和で結合する — orメソッド
 5.2.7 データを並べ替える — orderメソッド
 5.2.8 ソート式を上書きする — reorderメソッド
 5.2.9 取得列を明示的に指定する — selectメソッド
 5.2.10 重複のないレコードを取得する — distinctメソッド
 5.2.11 特定範囲のレコードだけを取得する — limit/offsetメソッド
 5.2.12 先頭/末尾のレコードを取得する — first/lastメソッド
 5.2.13 データを集計する — groupメソッド
 5.2.14 集計結果をもとにデータを絞り込む — havingメソッド
 5.2.15 条件句を破壊的に代入する — where!メソッド
 5.2.16 クエリメソッドによる条件式を除去する — unscopeメソッド
 5.2.17 空の結果セットを取得する — noneメソッド
 5.3 データ取得のためのその他のメソッド
 5.3.1 指定列の配列を取得する — pluckメソッド
 5.3.2 データの存在を確認する — exists?メソッド
 5.3.3 よく利用する条件句をあらかじめ準備する — 名前付きスコープ
 5.3.4 デフォルトのスコープを定義する — default_scopeメソッド
 5.3.5 検索結果の行数を取得する — countメソッド
 5.3.6 特定条件に合致するレコードの平均や最大/最小を求める
 5.3.7 生のSQL命令を直接指定する — find_by_sqlメソッド
 5.4 レコードの登録/更新/削除
 5.4.1 複数のレコードをまとめて更新する — update_allメソッド
 5.4.2 レコードを削除する — destroy/deleteメソッド
 5.4.3 複数のレコードをまとめて削除する — destroy_allメソッド
 5.4.4 トランザクション処理を実装する — transactionメソッド
 5.4.5 補足:トランザクション分離レベルを指定する
 5.4.6 オプティミスティック同時実行制御
 5.4.7 列挙型のフィールドを定義する — Active Record enums
 5.4.8 補足:その他の更新系メソッド
 5.5 検証機能の実装
 5.5.1 Active Modelで利用できる検証機能
 5.5.2 検証機能の基本
 5.5.3 その他の検証クラス
 5.5.4 検証クラス共通のパラメーター
 5.5.5 自作検証クラスの定義
 5.5.6 データベースに関連づかないモデルを定義する — ActiveModel::Modelモジュール
 5.6 アソシエーションによる複数テーブルの処理
 5.6.1 リレーションシップと命名規則
 5.6.2 参照元テーブルから参照先テーブルの情報にアクセスする — belongs_toアソシエーション
 5.6.3 1:nの関係を表現する — has_manyアソシエーション
 5.6.4 1:1の関係を表現する — has_oneアソシエーション
 5.6.5 m:nの関係を表現する(1) — has_and_belongs_to_manyアソシエーション
 5.6.6 m:nの関係を表現する(2) — has_many throughアソシエーション
 5.6.7 アソシエーションによって追加されるメソッド
 5.6.8 アソシエーションで利用できるオプション
 5.6.9 関連するモデルと結合する — joinsメソッド
 5.6.10 関連するモデルと結合する(左外部結合) — left_outer_joinsメソッド
 5.6.11 関連するモデルをまとめて取得する — includesメソッド
 5.7 コールバック
 5.7.1 利用可能なコールバックと実行タイミング
 5.7.2 コールバック実装の基本
 5.7.3 コールバックのさまざまな定義方法
 5.8 マイグレーション
 5.8.1 マイグレーションのしくみ
 5.8.2 マイグレーションファイルの構造
 5.8.3 マイグレーションファイルの作成
 5.8.4 マイグレーションファイルで利用できる主なメソッド
 5.8.5 マイグレーションファイルの実行
 5.8.6 リバーシブルなマイグレーションファイル
 5.8.7 スキーマファイルによるデータベースの再構築
 
第6章 コントローラー開発
		6.1 リクエスト情報6.1.1 リクエスト情報を取得する — paramsメソッド
 6.1.2 マスアサインメント脆弱性を回避する — StrongParameters
 6.1.3 リクエストヘッダーを取得する — headersメソッド
 6.1.4 リクエストヘッダーやサーバー環境変数を取得するための専用メソッド
 6.1.5 ファイルをアップロードする(1) — ファイルシステムへの保存
 6.1.6 ファイルをアップロードする(2) — データベースへの保存
 6.2 レスポンスの操作
 6.2.1 テンプレートファイルを呼び出す — renderメソッド(1)
 6.2.2 レスポンスをインラインで設定する — renderメソッド(2)
 6.2.3 空のコンテンツを出力する — headメソッド
 6.2.4 処理をリダイレクトする — redirect_toメソッド
 6.2.5 直前のページにリダイレクトする — redirect_backメソッド
 6.2.6 ファイルの内容を出力する — send_fileメソッド
 6.2.7 バイナリデータを出力する — send_dataメソッド
 6.2.8 補足:ログを出力する — loggerオブジェクト
 6.3 HTML以外のレスポンス処理
 6.3.1 モデルの内容をXML/JSON形式で出力する
 6.3.2 テンプレート経由でJSON/XMLデータを生成する — JBuilder/Builder
 6.3.3 マルチフォーマット出力に対応する — respond_toメソッド
 6.4 状態管理
 6.4.1 クッキーを取得/設定する — cookiesメソッド
 6.4.2 補足:永続化クッキー/暗号化クッキー
 6.4.3 セッションを利用する — sessionメソッド
 6.4.4 フラッシュを利用する — flashメソッド
 6.5 フィルター
 6.5.1 アクションの事前/事後に処理を実行する — before/afterフィルター
 6.5.2 アクションの前後で処理を実行する — aroundフィルター
 6.5.3 フィルターの適用範囲をカスタマイズする
 6.5.4 例:フィルターによる基本認証の実装
 6.5.5 例:フィルターによるフォーム認証の実装
 6.6 アプリ共通の挙動を定義する — Applicationコントローラー
 6.6.1 共通フィルターの定義 — ログイン機能の実装
 6.6.2 共通的な例外処理をまとめる — rescue_fromメソッド
 6.6.3 クロスサイトリクエストフォージェリ対策を行う — protect_from_forgeryメソッド
 6.6.4 デバイス単位でビューを振り分ける — Action Pack Variants
 6.6.5 独自のフラッシュメッセージを追加する — add_flash_typesメソッド
 6.6.6 補足:共通ロジックをモジュールにまとめる — concernsフォルダー
 
第7章 ルーティング
		7.1 RESTfulインターフェイスとは7.1.1 RESTfulインターフェイスを定義する — resourcesメソッド
 7.1.2 単一のリソースを定義する — resourceメソッド
 7.1.3 補足:ルート定義を確認する
 7.2 RESTfulインターフェイスのカスタマイズ
 7.2.1 ルートパラメーターの制約条件 — constraintsオプション
 7.2.2 より複雑な制約条件の設定 — 制約クラスの定義
 7.2.3 format パラメーターを除去する — formatオプション
 7.2.4 コントローラークラス/Urlヘルパーの名前を修正する — controllers/asオプション
 7.2.5 モジュール配下のコントローラーをマッピングする — namespace/scopeブロック
 7.2.6 RESTfulインターフェイスに自前のアクションを追加する — collection/memberブロック
 7.2.7 RESTfulインターフェイスのアクションを無効化する — only/exceptオプション
 7.2.8 階層構造を持ったリソースを表現する — resourcesメソッドのネスト
 7.2.9 リソースの「浅い」ネストを表現する — shallowオプション
 7.2.10 ルート定義を再利用可能にする — concernメソッド&concernsオプション
 7.3 非RESTfulなルートの定義
 7.3.1 非RESTfulルートの基本 — matchメソッド
 7.3.2 さまざまな非RESTfulルートの表現
 7.3.3 トップページへのマッピングを定義する — rootメソッド
 
第8章 テスト
		8.1 テストの基本8.1.1 Railsアプリのテスト
 8.1.2 テストの準備
 8.2 Unitテスト
 8.2.1 Unitテストの基本
 8.2.2 Unit テストの具体例
 8.2.3 テストの準備と後始末 — setup/teardownメソッド
 8.3 Functionalテスト
 8.3.1 Functionalテストの準備
 8.3.2 Functionalテストの基本
 8.3.3 Functionalテストで利用できるAssertionメソッド
 8.4 Integrationテスト
 
第9章 クライアントサイド開発
		9.1 JavaScript/スタイルシートのインポート9.1.1 マニフェストの基本
 9.2 Asset Pipeline
 9.2.1 Asset Pipelineのしくみ
 9.2.2 実行環境による挙動の違い
 9.2.3 Asset Pipelineの挙動を制御する
 9.3 CoffeeScript
 9.3.1 CoffeeScriptの基本
 9.3.2 CoffeeScriptの基本構文
 9.3.3 変数とリテラル表現
 9.3.4 演算子
 9.3.5 制御構文
 9.3.6 関数
 9.3.7 オブジェクト指向構文
 9.3.8 補足:即時関数
 9.4 Sass(SCSS)
 9.4.1 SCSSの基本
 9.4.2 スタイル定義のネスト
 9.4.3 変数
 9.4.4 演算子
 9.4.5 関数
 9.4.6 ディレクティブ
 9.4.7 コメント
 9.5 Ajax開発
 9.5.1 Ajaxの基礎知識
 9.5.2 Ajax対応のハイパーリンクを生成する — link_toメソッド
 9.5.3 補足:更新コンテンツの生成は部分テンプレートで
 9.5.4 Ajax対応のフォームを生成する — form_tag/form_forメソッド
 9.5.5 Ajax通信でJSONデータを利用する
 9.5.6 補足:Ajax呼び出しの際に進捗メッセージを表示する
 9.5.7 Slideshare APIを利用する
 9.6 Turbolinks
 9.6.1 Turbolinksのしくみ
 9.6.2 Turbolinksによるページ操作
 9.6.3 Turbolinksを無効にする
 
第10章 Railsの高度な機能
		10.1 電子メールを送信する — Action Mailer10.1.1 Action Mailerを利用する準備
 10.1.2 メール送信の基本
 10.1.3 複数フォーマットでのメール配信
 10.1.4 メールをプレビューする
 10.1.5 メール送信前に任意の処理を実行する — インターセプター
 10.1.6 メーラーのUnitテスト
 10.2 時間のかかる処理を非同期実行する — Active Job
 10.2.1 Active Jobを利用する準備
 10.2.2 ジョブ実行の基本
 10.2.3 ジョブ実行のカスタマイズ
 10.2.4 ジョブの登録/実行の前後で処理を実行する — コールバック
 10.2.5 ジョブのUnitテスト
 10.3 キャッシュ機能の実装
 10.3.1 キャッシュを利用する場合の準備
 10.3.2 フラグメントキャッシュの基本
 10.3.3 フラグメントキャッシュを複数ページで共有する
 10.3.4 モデルをもとにキャッシュキーを決める
 10.3.5 指定の条件に応じてキャッシュを有効にする
 10.3.6 キャッシュの格納先を変更する
 10.4 アプリの国際化対応 — I18n API
 10.4.1 国際化対応アプリの全体像
 10.4.2 国際化対応の基本的な手順
 10.4.3 ロケールを動的に設定する方法 — ApplicationController
 10.4.4 辞書ファイルのさまざまな配置と記法
 10.4.5 Rails標準の翻訳情報を追加する
 10.4.6 ビューヘルパーtの各種オプション
 10.5 Railsの機能拡張
 10.5.1 Rails 5で利用できるライブラリ
 10.5.2 ページング機能を実装する — will_paginate
 10.6 本番環境への移行
 10.6.1 Nginx+Puma環境への配置
 10.6.2 Heroku環境への配置
 
 |  
	
		  |