正誤表(第2版)

100ページ 7-2-3
表の列名と列の内容が合っていない。
演算|演算子
演算子|演算

108ページの入れ子の配列の定義の例
配列の要素の区切りの「,」が抜けている。
1 fruits_prices = [ ["apple"200] ["orange"100], ["melon"600] ]
1 fruits_prices = [ ["apple"200], ["orange"100], ["melon"600] ]

111ページ 7-5
本来第2部の最後にくるべき「8-5 確かめてみよう」が誤って7-5として重複掲載されている。
7-5 節を削除する。

132ページ 練習1のex0901.rbの12行目
文字列式の中で使っている式展開が、#{式}という形式ではなく、#変数名の形式になっている。
式が変数記号($,@)で始まる変数の場合には {}を省略できるが、説明がなくわかりにくい。
"#@name, #@age"
"#{@name}, #{@age}"

135ページ 練習2のex0902.rbの22行目
文字列式の中で使っている式展開が、#{式}という形式ではなく、#変数名の形式になっている。
式が変数記号($,@)で始まる変数の場合には {}を省略できるが、説明がなくわかりにくい。
"#@name, #@age"
"#{@name}, #{@age}"

137ページ 練習3のex0903.rbの32行目
文字列式の中で使っている式展開が、#{式}という形式ではなく、#変数名の形式になっている。
式が変数記号($,@)で始まる変数の場合には {}を省略できるが、説明がなくわかりにくい。
"#@name, #@age"
"#{@name}, #{@age}"

139ページ 練習4のex0904.rbの15行目
文字列式の中で使っている式展開が、#{式}という形式ではなく、#変数名の形式になっている。
式が変数記号($,@)で始まる変数の場合には {}を省略できるが、説明がなくわかりにくい。
"#@name, #@age"
"#{@name}, #{@age}"

141ページ練習1のex1001.rbの19行目
文字列式の中で使っている式展開が、#{式}という形式ではなく、#変数名の形式になっている。
式が変数記号($,@)で始まる変数の場合には {}を省略できるが、説明がなくわかりにくい。
"#@title, #@author, #@page, #@publish_date"
"#{@title}, #{@author},#{@page}, #{@publish_date}"

149ページ 11-1-2のハッシュリテラルの例の3行目
Dateクラスのインスタンスを作成しているところにnewメソッドが抜けている
3 birthdays = { "shin" => Date( 1963912 ), "hiroshi" => Date( 1967118 ) }
3 birthdays = { "shin" => Date.new1963912 ), "hiroshi" => Date.new1967118 ) }

149ページ 11-1-2のシンボルを使った表記の例の2行目
Dateクラスのインスタンスを作成しているところにnewメソッドが抜けている
2 birthdays = { :shin => Date( 1963912 ), :hiroshi => Date( 1967118 ) }
2 birthdays = { :shin => Date.new1963912 ), :hiroshi => Date.new1967118 ) }

149ページ 11-1-3の新しいハッシュを作る別の方法の5,6行目
Dateクラスのインスタンスを作成しているところにnewメソッドが抜けている
5 birthdays[ :shin ] = Date( 1963912 )
6 birthdays[ :hiroshi ] = Date( 1967118 )
5 birthdays[ :shin ] = Date.new1963912 )
6 birthdays[ :hiroshi ] = Date.new1967118 )

187ページ  課題の3項目
nulではなくnil。
 nul
 nil

274ページ  ex2108の14行目
数値フィールドなのに文字列を指定している。
 '300'
300

270ページ ex2106.rb、16行目
DBIのバージョンによって、配列表記が得られずROWクラスのオブジェクトが返されるようになった。どのバージョンでも配列表記が得られるよう、to_aメソッドを使って明示的に配列を返すように変更する。
16 print "row=#{row}\n"
16 print "row=#{row.to_a}\n"

274ページ  ex2108の23行目
数値フィールドなのに文字列を指定している。
 '2000'
2000

319ページ ex2502.rb
実行すると、cannot load such file -- webrick (LoadError) になる。

Ruby 3.0 で WEBrick が標準添付でなくなったので、gemからインストールする。
gem install webrick

338ページ 練習52段落目6行目
脱字
その実行結果がます。
その実行結果が表示されます。

367-369ページ default.css、39行目、47行目
border-styleプロパティを誤ってborder-typeと書いている箇所がある。
39 border-type : solid
39 border-style : solid
47 border-type : solid
47 border-style : solid

387ページ 練習11のbookinfo_web.rbの28行目
文字列を囲むために挿入している「’」が欠落して処理されることがある。
 '#{req.query[name]}'
¥'#{req.query[name]}¥'

393ページ edit.erbの34,35行目
idはキーなので、変更対象から外し、テキストフィールドからテキストに変更する
34 <td><%= name %></td>
35 <td><input name="<%= name %>" value="<%= row[name] %>" size="60" /></td>
34 <td><%= name %></td>
35 <% if name == 'id' %>
36   <td><%= row[name] %></td>
37 <% else %>
38   <td><input name="<%= name %>" value="<%= row[name] %>" size="60" /></td>
39 <% end %>

394ページ、
項目「id」は更新対象から外すので、図「蔵書データの修正画面の確認」の画像を差し替える
蔵書データの修正画面_1
蔵書データの修正画面_1_updated

​​​​​​​

395ページ bookinfo_web.rbの21行目
idはキーなので、変更対象フィールドから外す
34 dbh.do("update bookinfos set id='#{req.query['id']}',\
34 dbh.do("update bookinfos set \