『改訂3版 基礎Ruby on Rails』正誤表

2015/05/18

最終更新日:2017/01/09

読者のみなさまのご協力に感謝します:YT様、KW様、HM様、YT様、NT様、SO様、KM様、TB様、ST様、HS様、NK様、AI様、YM様、TY様、TS様、YO様、JH様、MH様、YI様

本書で誤字、脱字、内容の間違いなどを見つけた方は、hermes@oiax.jp までご連絡ください。

初版第2刷 (2016-11-21発行)

Chapter 9

P.455 LIST、21行目 New

誤: member = assigns[:member]
正: member = assigns(:member)

P.455 LIST、28行目 New

誤: member = assigns[:member]
正: member = assigns(:member)

P.485 第2のLISTのパス New

誤: section9-5/test/integration/manager_articles_test.rb
正: section9-5/test/integration/manage_articles_test.rb

初版第1刷 (2015-05-21発行)

Chapter 1

P.24 ページ下部のコマンド入力例

誤:

C:¥Users¥taro> rails -v
Rails 4.2.1

正:

C:¥Users¥taro> rails -v
DL is deprecated, please use Fiddle.
Rails 4.2.1

DL is deprecated, please use Fiddle.は、Ruby Installer for Windows に添付されているライブラリが古いことを示すもので、実用上の問題はありません。このメッセージは Ruby 2.1.6 以降では表示されません。

P.34 ページ下部のコマンド実行例

下から4行目の route get 'top/index' を削除。

P.81 LIST chapter2/books.txt の下

次のHINTを追加。

書名と価格の間をタブ文字で区切ってください。テキストエディタAtomは、初期設定でタブ文字をスペース文字に展開します。タブ文字を入力する時は Ctrl+, キーで設定画面を開き、「Soft Tabs」のチェックを外してください。

Chapter 3

P.123 第1のLIST

末尾に次の記述を追加。

(以下省略)

P.130 第1のLISTのパス

誤:chapter3/app/config/routes.rb
正:chapter3/config/routes.rb

P.144 表「文字列用のヘルパーメソッド」の2段目

誤 excerpt(文字列, 語句, radius: 文字列)
正 excerpt(文字列, 語句, radius: 文字数)

P.147 本文下から5行目およびLIST

誤 rails.png
正 rails-logo.svg

Chapter 4

P.189 3番目のコンソール操作例

下から2行目の irb(main):010:0> member.save を上から5行目に移動。

P.194 本文1行目「Windowsの方は、…」の上に、次の文を挿入。

なお、db:reset および db:migrate:reset タスクを実行する前に、Railsサーバーを停止してください。

本書のようにDBMSとしてSQLite3を使用している場合、これらのタスクを実行してデータベースの中身が変更されても、ブラウザに表示される内容が変化しないことがあります。

P.198 1番目のコンソール操作例(1行目)

誤 member = Member.where(name: "Taro"); nil
正 members = Member.where(name: "Taro"); nil

P.200-201 表「クエリーメソッド一覧」の8段目

誤 limit(整数})
正 limit(整数)

Chapter 5

P.215 第2のコード例

誤:

resources :members do
  get "search", on: collection          # メンバーの検索
  put "suspend", "restore", on: :member # メンバーの停止・再開
end

正:

resources :members do
  get "search", on: :collection           # メンバーの検索
  patch "suspend", "restore", on: :member # メンバーの停止・再開
end

P.219 本文、下から5行目

誤:MembersControlller
正:MembersController

P.222 本文、下から2行目

誤:app/assetsフォルダに新規ファイルtable.cssを追加します
正:app/assets/stylesheetsフォルダに新規ファイルtable.cssを追加します

P.222 LISTのパス

誤:chapter5/app/assets/table.css
正:chapter5/app/assets/stylesheets/table.css

P.224 第2のLIST

誤:data: { confirm: "本当に削除しますか?" %> }
正:data: { confirm: "本当に削除しますか?" } %>

Chapter 6

P.257 HINT 3番目のコード例

誤:scope :active, where(deleted: false)
正:scope :active, -> { where(deleted: false) }

P.272 LIST

16〜18行のインデントを半角2文字分減らす。なお、サンプルソースコードの修正は不要です。

Chapter 7

P.291 本文8行目

誤: 「bin/rake test」の後に
正: 「bin/rake test TEST=」に続けて

P.291 コマンド実行例

誤: bin/rake test test/models/member_test.rb
正: bin/rake test TEST=test/models/member_test.rb

P.292 LIST のパス

誤: chapter7/test/controller/member_controller_test.rb
正: chapter7/test/controller/members_controller_test.rb

P.302 本文、下から1行目

誤:テストスクリプトでバリデーションをテストするするには
正:テストスクリプトでバリデーションをテストするには

P.303 本文、3行目

誤:valid?メソッドを呼び出したあとで
正:valid?メソッドやinvalid?メソッドを呼び出したあとで

P.306 本文、3行目

誤:4行目でchack_expired_atメソッドで
正:4行目でcheck_expired_atメソッドで

P.308 本文、5行目

誤:no_expirationをnilにするコードを加えましょう。
正:expired_atをnilにするコードを加えましょう。

Chapter 8

P.382 LISTの56行目

誤:    :released_at, :expired_at, :member_only)
正:    :released_at, :no_expiration, :expired_at, :member_only)

P.364 LISTの7行目

誤:       method: :delete, data: { confirm: "ログアウトしますか?" %> }
正:       method: :delete, data: { confirm: "ログアウトしますか?" } %>

P.367 第1のLISTのパス

誤:section8-2/app/views/articles/index.rb
正:section8-2/app/views/articles/index.html.erb

P.368 第1のLISTの9行目

誤:    rel = where("released_at <= ? AND (? < expired_at OR " +
正:    where("released_at <= ? AND (? < expired_at OR " +

P.388 LISTの24行目

誤:    params.require(:account).permit(:number, :name, :full_name
正:    params.require(:account).permit(:number, :name, :full_name,

P.391 本文の 5 行目

誤:rednerメソッドには
正:renderメソッドには

P.394 図「400エラーの表示」

誤:404 Bad Request
正:400 Bad Request

Chapter 9

P.429 本文、5行目〜6行目

誤:(前会員の記事一覧)
正:(全会員の記事一覧)

P.450 コード例の1行目

誤:<%= form_for @member, html: { multipart: true } do |form} %>
正:<%= form_for @member do |form} %>

P.452 第2のLISTのパス

誤:section9-3/app/controllers/members_controller.rb
正:section9-3/app/controllers/accounts_controller.rb

P.455 LISTのパス

誤:section9-3/test/functional/members_controller_test.rb
正:section9-3/test/controllers/members_controller_test.rb

P.455 LIST、21行目 New

誤: member = assigns[:member]
正: member = assigns(:member)

P.455 LIST、28行目 New

誤: member = assigns[:member]
正: member = assigns(:member)

P.466 本文、下から2行目

誤: 「マイブログ」
正: 「ブログ」

P.468 LISTの21行目

誤:     root to: "top#index"
正:     root "top#index"

誤りではありませんが、2行目と同じ形式で書くべきです。

P.475 第3のLISTの5行目

誤:<%= form_for [:admin, @member], html: { multipart: true } do |form} %>
正:<%= form_for [:admin, @member] do |form} %>

P.475 第4のLISTの7行目

誤:<%= form_for [:admin, @member], html: { multipart: true } do |form} %>
正:<%= form_for [:admin, @member] do |form} %>

P.476 本文、箇条書きの第2項目

誤:app/controllers/membersフォルダの下から
正:app/views/membersフォルダの下から

P.476 本文、箇条書きの第2項目

誤: new.html.erb、edit.html.erb、_form.html.erbの3つのファイルを
正: new.html.erb、edit.html.erbの2つのファイルを

_form.html.erbapp/views/account/edit.html.erb で使われているので削除できません。

P.476 本文、箇条書きの直後

誤:app/controllers/members/index.html.erbを開いて
正:app/views/members/index.html.erbを開いて

P.479 第1のLIST

誤:

   (省略)
 5 <p><%= link_to "新規作成", :new_admin_article %></p>
   (省略)
21         <%= link_to "編集", [:edit,:admin, article] %> |
22         <%= link_to "削除", [:admin, article], method: :delete,
23           data: { confirm: "本当に削除しますか?" } %>
   (省略)

正:

(省略)
5 <p><%= link_to "新規作成", :new_admin_article %></p>
(省略)
17       <td><%= link_to article.title, [:admin, article] %></td>
18       <td><%= article.released_at.strftime("%Y/%m/%d %H:%M") %></td>
19       <% if current_member %>
20       <td>
21         <%= link_to "編集", [:edit,:admin, article] %> |
22         <%= link_to "削除", [:admin, article], method: :delete,
23           data: { confirm: "本当に削除しますか?" } %>
(省略)

17行目の article[:admin, article] に修正する必要があります。

P.479 第2のLISTのパス

誤: section9-5/app/views/admin/members/show.html.erb
正: section9-5/app/views/admin/articles/show.html.erb

P.479 第3のLISTのパス

誤: section9-5/app/views/admin/members/new.html.erb
正: section9-5/app/views/admin/articles/new.html.erb

P.479 第4のLISTのパス

誤: section9-5/app/views/admin/members/edit.html.erb
正: section9-5/app/views/admin/articles/edit.html.erb

P.480 本文、箇条書きの第2項目

誤: app/controllers/articlesフォルダの
正: app/views/articlesフォルダの

P.485 第2のLISTのパス New

誤: section9-5/test/integration/manager_articles_test.rb
正: section9-5/test/integration/manage_articles_test.rb

P.485 第2のLISTの20行目

誤:    assert_redirected_to [:admin, assigns[:article]]
正:    assert_redirected_to [:admin, assigns(:article)]

付録F 練習問題の解答

P.511 Chapter 6 [C] の解答の2行目

誤:   validates :title, :author
正:   validates :title, :author, presence: true

P.512 Chapter 7 [A] の解答の4行目

誤:   assert article.errors.include?(:title)
正:   assert book.errors.include?(:title)

索引

P.515

誤:current ... 87
正:current ... 88