書籍概要

パーフェクト

パーフェクトRuby on Rails
【増補改訂版】

著者
発売日
更新日

概要

対象バージョンをRuby 2.6/2.7系,Rails 6.0系に変更した増補改訂版。新しいRailsのバージョンでサポートされた機能の紹介だけでなく,Dockerでの導入方法など最新の実践的内容を追加し,現在のトレンドとなる開発スタイルを紹介します。

こんな方におすすめ

  • Ruby on Rails 6.0の情報を知りたい人
  • Ruby on Railsの学習を始め,これから本格的に使っていきたい人

サンプル

samplesamplesamplesamplesample

目次

Part1 Rails ~ overview
1章 Ruby on Railsの概要

  • 1-1 Railsを使う前に
  • 1-2 Railsの思想
  • 1-3 Railsをはじめよう!!
  • 1-4 scaffoldを使ってRailsでの開発を体験しよう

2章 Ruby on RailsとMVC

  • 2-1 MVCアーキテクチャ
  • 2-2 モデルを扱う
  • 2-3 コントローラの役割
  • 2-4 コントローラとビューの協調とビューテンプレートの基本
  • 2-5 ビューテンプレートについて

3章 押さえておきたいRailsの基本機能

  • 3-1 テストの種類と実行方法
  • 3-2 RackとRailsの関係
  • 3-3 DBを管理する
  • 3-4 秘密情報を管理する
  • 3-5 HTTPとRailsアプリケーション

Part2 Railsの周辺知識
4章 フロントエンドの開発手法

  • 4-1 Webpackerを使ってJavaScriptを管理する
  • 4-2 SprocketsによるCSSの管理
  • 4-3 Railsに組み込まれているJavaScriptの機能
  • 4-4 控えめなJavaScriptフレームワークStimulus

5章 Rails標準の機能を活用して素早く機能実装する

  • 5-1 Active Jobによる非同期実行
  • 5-2 Active Storageによるファイルアップロード
  • 5-3 Action Mailerによるメール送信
  • 5-4 Action Mailboxによるメール受信
  • 5-5 Action Textによるリッチテキスト機能
  • 5-6 Action Cableによるリアルタイム通信

Part3 Webアプリケーション開発
6章 Railsアプリケーション開発

  • 6-1 イベント告知アプリケーションを作る
  • 6-2 アプリケーションの作成と下準備
  • 6-3 OAuthを利用して「GitHubでログイン」機能を作る
  • 6-4 イベントの登録機能を作る
  • 6-5 イベントの閲覧機能を作る
  • 6-6 イベントの編集・削除機能を作る
  • 6-7 登録されたイベントへの参加機能,参加キャンセル機能を作る
  • 6-8 退会機能を作る
  • 6-9 おわりに

7章 Railsアプリケーションのテスト

  • 7-1 テストコードをどう書いていくか
  • 7-2 minitestとRSpec
  • 7-3 テストデータを作成する
  • 7-4 システムテスト
  • 7-5 コントローラに対する機能テスト
  • 7-6 モデルに対するテスト

Part4 Railsアプリケーションの拡張・運用
8章 Railsアプリケーション拡張

  • 8-1 ファイルアップロード機能を作る
  • 8-2 gemで機能拡張をする
  • 8-3 落穂ひろい

9章 コード品質を上げる

  • 9-1 CI(継続的インテグレーション)
  • 9-2 Gemの定期update
  • 9-3 静的解析
  • 9-4 カバレッジ測定
  • 9-5 アプリケーションパフォーマンス測定(APM)

10章 コンテナを利用したRailsアプリケーションの運用

  • 10-1 Railsアプリケーションのインフラ概要
  • 10-2 基本的なDockerイメージの構築
  • 10-3 開発環境におけるDockerの活用
  • 10-4 環境によって可変する設定値や秘匿情報の管理
  • 10-5 ログ出力
  • 10-6 HTTPサーバとの通信

Part5 エキスパートRails
11章 複雑なドメインを表現する

  • 11-1 アーキテクチャパターンから見るRails
  • 11-2 値オブジェクト
  • 11-3 サービスオブジェクト

12章 複雑なユースケースを実現する

  • 12-1 ユースケースとモデル
  • 12-2 データベースと紐づかないモデルを作る
  • 12-3 フォームオブジェクト
  • 12-4 プレゼンター

13章 複雑なデータ操作を実装する

  • 13-1 Concern
  • 13-2 コールバックオブジェクト

Appendix Railsの開発環境構築

  • A-1 WindowsでのRubyとRails環境
  • A-2 Rubyのインストール

サポート

ダウンロード

本書で使用したサンプルファイルをダウンロードできます。
データは,圧縮ファイル形式でダウンロードできます。圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。

ダウンロード
サンプルファイル

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2020年10月9日最終更新)

P.40


rake db:mirgate

bin/rails db:migrate

P.91

たとえばプロフィール編集機能の実装例です。このようなコードにはMass Assignment脆弱性が含まれています。
たとえば次のコードはMass Assignment脆弱性を引き起こしていた例です。現在のRailsではこの脆弱性を防ぐため、このような例はActiveModel::ForbiddenAttributesErrorが発生して実行できませんが、過去のRailsではこのような問題を含んでいました。

P.130

組み合わせを選択するとが
組み合わせを選択すること

P.161

サーバがHTMLをパースしている間に
サーバがHTMLを生成している間に

P.218

UserモデルのURI文字列
AsyncLogモデルのURI文字列

P.328 リスト6.48


%button.btn.btn-primary.btn-lg.btn-block{ "data-toggle" => "model", "data-target" => "#createTicket" } # ((1))


%button.btn.btn-primary.btn-lg.btn-block{ "data-toggle" => "modal", "data-target" => "#createTicket" } # ((1))

P.340


RetimementsController

RetirementsController

P.356

h1 タグに "Welcome" 文字列
h1 タグに "イベント一覧" 文字列

P.356


% bin/rails test/system/welcomes_test.rb

% bin/rails test test/system/welcomes_test.rb

P.362


% rails test test/system/events_test.rb

% bin/rails test test/system/events_test.rb

P.364


% rails test test/system/events_test.rb
略
..
Finished in 1.858243s, 1.0763 runs/s, 1.0763 assertions/s.
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips


% bin/rails test test/system/events_test.rb
略
....
Finished in 3.041794s, 1.3150 runs/s, 1.9725 assertions/s.
4 runs, 6 assertions, 0 failures, 0 errors, 0 skips

P.467(上部)

BankAccount(口座残高)
BankAccount(銀行口座

P495(下部)

実装すると、13.1のようになります。
実装すると、リスト13.1のようになります。

P.420 実行文1行目


rubocop -a target1.rb


rubocop -A target1.rb

【注意】
RuboCopバージョン0.87で-aオプションに変更が入りました。本書のケース rubocop -a target1.rb では-aオプションでは自動修正が行われなくなり,自動修正を行うためには-Aオプションをつけて実行します。変更は,-aオプションはSafeとマークされているCopのみが自動修正の対象となり,従来どおりUnsafeを含むすべての自動修正可能なCopを適用する場合は-Aオプションを使うという内容です。

商品一覧