WINGS(Www INtegrated Guide on Server-architecture)
Www INtegrated Guide on Server-architecture :
   ホーム お問い合わせ サーバーサイド環境構築設定 つぶやき ブックマーク レンタルサーバー 総合FAQ/訂正&ダウンロード このエントリーをはてなブックマークに追加        
  • 刊行書籍情報  [書籍マップ
  • オンライン公開 技術記事
  • シリーズ別書籍リスト
  • 「WINGS News」登録/解除
  • WINGSプロジェクト紹介
  • WINGSプロジェクトメンバ募集





【カテゴリ】 Ruby


Ruby on Rails 5アプリケーションプログラミング  

Ruby on Rails 5アプリケーションプログラミング

山田祥寛/著
株式会社 技術評論社/発行
定価 3,960円
B5変版・ 608ページ・ 1色
ISBN 978-4-7741-8883-6
発刊日: 2017年4月14日

[Amazon.co.jpからオンライン購入する]

   FAQ 本書訂正 アンケート ダウンロード

本書の特徴

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 Mailer
 10.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環境への配置

本ページへのリンクには、このロゴをご利用ください。


著作権情報個人情報保護について広告掲載についてRSSフィードについて
出版社の方々へ会社概要スタッフ紹介サイトマップ  
書籍/記事に関するご質問/お問い合わせは「WINGSお問い合わせフォーム」をご利用ください。
Copyright(c) 1998-2024,Yamada Yoshihiro.  All Right Reserved.