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

2018/09/25

第1刷

Chapter 1

p.24 の第2のコマンド入力例(2行目)

誤 sudo apt-get -y install ruby2.5 ruby2.5-dev
正 sudo apt-get -y install ruby2.5 ruby2.5-dev nodejs 

p.24 の第2のコマンド入力例(最終行)

$ sudo add-apt-repository -y ppa:brightbox/ruby-ng
$ sudo apt-get -y install ruby2.5 ruby2.5-dev
$ echo 'export GEM_HOME=~/.gem' >> ~/.bashrc
$ source ~/.bashrc

$ sudo add-apt-repository -y ppa:brightbox/ruby-ng
$ sudo apt-get -y install ruby2.5 ruby2.5-dev
$ echo 'export GEM_HOME=~/.gem' >> ~/.bash_profile
$ echo 'export PATH=~/.gem/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile

1行目と2行目に変化はありません。3行目と最終行で ~/.bashrc~/.bash_profile に変わっています。4行目が挿入されています。

参考資料: https://github.com/Microsoft/WSL/issues/2067#issuecomment-299619151

p.26 本文1行目

「Ubuntuターミナルで次のコマンドを実行します。」の前に、以下の記述を挿入。

railsディレクトリのプロパティを開き、「場所」に書かれている文字列に「OneDrive」が含まれているかどうかを確認してください。含まれていない場合は、

p.26 本文2行目

「ただし、oiaxの部分は、自分のユーザー名で置き換えてください。」の後で段落を改め、以下の記述を追加。

railsディレクトリの「場所」プロパティの値に「OneDrive」という文字列が含まれている場合は、Ubuntuターミナルで次のコマンドを実行します。

続いて、次の内容をコマンド入力例として追加。

$ ln -s /mnt/c/Users/oiax/OneDrive/デスクトップ/rails ~/rails

さらに、その下に次の記述を追加。

ただし、oiaxの部分は、自分のユーザー名で置き換えてください。

Chapter 2

p.65 の LIST chapter02/2-1-3d.rb の 4 行目

誤 puts a * b.to_i
正 puts a * b.to_f

p.65 の RESULT の 3 行目

誤 36
正 36.0

Chapter 3

p.161 の LIST chapter03/app/views/shared/_login_form.html.erb

誤 <form id="login_form">
正 <form id="login-form">

Chapter 5

p.229 の LIST chapter05/app/models/member.rb 4行目から7行目

      if query.present?
        rel = rel.where("name LIKE ? OR full_name LIKE ?",
          "%#{query}%", "%#{query%")}
      end

      if query.present?
        rel = rel.where("name LIKE ? OR full_name LIKE ?",
          "%#{query}%", "%#{query}%")
      end

Chapter 9

p.329 のコマンド入力例 3 行目

誤 Member Load(0.6ms) SELECT "members".* FROM "members" (略)
正 Article Load (0.6ms)  SELECT  "articles".* FROM "articles" (略)

p.345 の第1のLIST

【誤】

   (省略)
20       errors.add(:expired_at, :expired_at_too_old)
21     end
22   end
23
24   scope :open_to_the_public, -> { where(member_only: false) }
25
26   scope :visible, -> do
27     now = Time.current
28
29     where("released_at <= ?", now)
30       .where("expired_at > ? OR expired_at IS NULL", now)
31   end
32 end

【正】

   (省略)
14   before_validation do
15     self.expired_at = nil if @no_expiration
16   end
17
18   scope :open_to_the_public, -> { where(member_only: false) }
19
20   scope :visible, -> do
21     now = Time.current
22
23     where("released_at <= ?", now)
24       .where("expired_at > ? OR expired_at IS NULL", now)
25   end
26 end

ただし、18-25行はボールドフォントで出力。

Chapter 13

P.464-465 の LIST chapter13/app/views/entry_images/new.html.erb の5行目

誤 <% url = entry_images_path(@entry, @image) %>
正 <% url = entry_images_path(@entry) %>

P.466 の LIST chapter13/config/locales/ja.yml の39行目

誤         data: 画像ファイル
正         new_data: 画像ファイル

付録B 練習問題の解答

P.539 Chapter 7 [A]の解答

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