『改訂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