small medium large xlarge

The latest version of the book is B5.0, released 27 days ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: B5.0 (25-Jul-17)
PDF page: 1

test/capybara issue outlined in /forums/470/topics/15236/posts/new?--David Copeland

  • Reported in: B5.0 (25-Jul-17)
Paper page: 7
The current rails-dev-box.git doesn't work with the libvirt backend - I changed it to use wholebits/ubuntu17.04-64 but it needed additional packages t...more...
  • Reported in: B5.0 (02-Aug-17)
  • Fixed: 17-Aug-17, awaiting book release
PDF page: 29
In the diagram showing file structure the hello.html.erb file is pointing to a block that contains the generated html instead of the erb file content....more...
  • Reported in: B5.0 (22-Jul-17)
PDF page: 92
The {..} hashes sometimes have extra spaces, sometimes not. On page 92 there aren't: validates :price, numericality: {greater_than_or_equal_to: 0.01}...more...
  • Reported in: B5.0 (22-Jul-17)
PDF page: 98
In products.yml fixture file the book 'ruby' should have ruby.jpg instead of ruby. png, because the file name in images directory is ruby.jpg. This is...more...
  • Reported in: B4.0 (14-Jul-17)
PDF page: 108
Hi, In the screenshot of the page 240 we can see for the first time the title (Pragmatic Bookshelf) appearing in the header of the page. How this t...more...
  • Reported in: B5.0 (06-Aug-17)
PDF page: 163
Hello. Seems like tiny typo on page 163 pdf ---> If you look in the app directory, you’ll find six subdirectories: depot> ls -p app assets/ ...more...
  • Reported in: B2.0 (14-Jun-17)
PDF page: 177
The listing at the top of the page seems to be erroneous.. There are some trailing characters <%#>. And the closing </p> is shown commented.--Akai B...more...
  • Reported in: B5.0 (22-Jul-17)
PDF page: 181
Paper page: 165

"doesn’t even ned an ending tag" should read "doesn’t even need an ending tag".--John Yeates

  • Reported in: B5.0 (24-Jul-17)
PDF page: 184
Paper page: 168
The URL "" has broken over two lines and been hyphenated as "". This URL leads to a Chinese site. Would suggest marki...more...
  • Reported in: B5.0 (26-Jul-17)
PDF page: 186
Products have many line_items, and line_items belongs to an order. should be (line_items is plural) Products have many line_items. and line_item...more...
  • Reported in: B5.0 (27-Jul-17)
PDF page: 187
ActiveRecord::HasManyThroughSourceAssociationNotFoundError (Could not find the source association(s) "order" or :orders in model LineItem. Try 'has_ma...more...
  • Reported in: B5.0 (27-Jul-17)
PDF page: 192
the command bin/rails webpacker:install fails with the following message Node.js not installed. Please download and install Node.js (node_url) e...more...
  • Reported in: B5.0 (24-Jul-17)
PDF page: 199
Paper page: 183
The line "sqlite3 -line db/development.sqlite3" can be replaced by "rails dbconsole", which is a useful command to know as it also works with other da...more...
  • Reported in: B5.0 (25-Jul-17)
PDF page: 237
Paper page: 222
The use of mail.body.encoded in the test for the HTML part of the email (in the "shipped" test) is not a great idea if you have non-US-ASCII character...more...
  • Reported in: B5.0 (25-Jul-17)
PDF page: 240
Paper page: 225
The code as provided does not run; either jobs/charge_order_job.rb needs to call order.make_payment or models/order.rb needs to define charge!(pay_typ...more...
  • Reported in: B5.0 (26-Jul-17)
  • Fixed: 17-Aug-17, awaiting book release
PDF page: 288
Paper page: 273
The code for the locale switcher includes `javascript_tag "$('.locale input').hide()"`, but this requires jQuery, which is no longer included in the a...more...
  • Reported in: B5.0 (31-Jul-17)
PDF page: 304
Paper page: 290
The three 'role' lines only work if the username on the deployment server is the same as on the server you are deploying from. It would be better to r...more...
  • Reported in: B5.0 (31-Jul-17)
PDF page: 308
Paper page: 294
Iteration L3 ends with the paragraph "Although our job is just starting when we first deploy our application to pro- duction, we’ve completed our tour...more...