text: 
  Originally submitted in Head First Rails book forum:
  Changes in html.erb files and database weren't visible in Rails version 2.3.2. I finally found that if I installed rails gem version 2.1.2, which is what the downloaded code uses, my code works.
  Maybe you should check this out and either figure out how to make the code work with rails v 2.3.2, or warn people in your Read Me preface not to go with 2.3.2.
  Note from the Author or Editor:I have emailed Brett Mclaughlin to see how best to handle it
  Answers to questions 2 & 3 are reversed
  Note from the Author or Editor:Pool puzzle answers 2 and 3 on page 6 need to be switched.
  Is "to" here extra that has to be removed?
  We need a set of pre-written code "to" that will form the foundation of
  the web application.
  you will probably still need these "three" things for your deployed application.
  Isn't it supposed to be "four" things? Since we have four points?
  Thanks.
  In the following:
  We need a set of pre-written code "to" that will form the foundation of
  the web application.
  I think that "to" has to be removed.
  Thanks.
  There are many features built "in to" Rails.
  Shouldn't it be "into"?
  Thanks.
  I think the solutions don't match the points?
  For example SQLite3 RDBMS is set to web server. Shouldn't it be to the database system point, which is (2)?
  Thanks.
  Note from the Author or Editor:Swap the positions of "Bundled HTTP server" and "SQLite3 RDBMS"
  The main reason "these application exists".....
  Shouldn't it be "these applications exist"?
  Thanks.
  "It" you want to use another port, such as 8000, run...
  I think it should be "If".
  Thanks.
  Scaffolding generated a whole set of pages that allow us to create, modify, and delete ticket details.
  Shouldn't we have "read" also here?
  Thanks.
  Note from the Author or Editor:Change "create, modify, and delete" to "create, read, modify, and create".
  "separated according to it's function"
  should be "its"
  The model code manages how "data is written and read to your database".
  Shouldn't it be:
  data is written to and read from your database?
  Thanks.
  The files in the "VIEW" need to be edited
  Shouldn't the "VIEW" be "VIEWS" since it refers to the name of the folder?
  Thanks.
  'suposed' should be changed to 'supposed'
  Note from the Author or Editor:"bookings are suposed" in the boss' speech bubble should be replaced with "bookings are supposed"
  AddPhoneToTickets adds phone to the "ticket" table.
  I think it should be "tickets"?
  Thanks.
  Bold code shows email_address; should be phone.
  Note from the Author or Editor:The code highlights the wrong piece of code and does not display the code that was added. Instead of showing this:
  <p>
  <b>Price paid:</b>
  <%=h @ticket.price_paid %>
  </p>
  <p>
  <b>Email address:</b>
  <%=h @ticket.email_address %>
  </p>
  <p>
  It ought to show this:
  <p>
  <b>Email address:</b>
  <%=h @ticket.email_address %>
  </p>
  <p>
  <b>Phone:</b>
  <%=h @ticket.phone %>
  </p>
  The paragraph with the phone information ought to be emboldened.
  An 'is' is missing after 'it': "once the code has been generated it the developer's ..."
  But the downside is that once the code has been generated it the developer's responsibility to keep the code up-to-date.
  It should be: ".... it 'is' the developer's responsibility..."
  Thanks.
  Note from the Author or Editor:Change "it" to "it's"
  Since all the notes contain a "." after them. Do you think "A decimal" has to have a "." (dot) at the end for consistency?
  Thanks.
  There is an arrow with text "This is the generated primary key." which points to somewhere where it could be misunderstood. It should refer to only the 'id'-row. It could also be read and understood that it refers to all three rows ('id', 'created_at' and 'updated_at') which are surrounded.
  Greetings from Freiburg in lovely Germany
  Note from the Author or Editor:The penciled loop associated with the annotation should only include the id field.
  Text: ..."If someone asks for for ad#3..."
  Double word "for for", change to "for".
  Greetings from Freiburg in lovely Germany
  If someone asks for "for" ad.....
  "for" is repeated twice.
  Thanks.
  The 10th question is in singular form, although it should be in plural.
  Question in the book is: Why are the templates in a folder called "views/ad" but the controllers are not in "controllers/ad?
  The correct version is: Why are the templates in a folder called "views/ads" but the controllers are not in "controllers/ads?
  Note from the Author or Editor:"views/ad" should be changed to "views/ads" and "controllers/ad" should be changed to "controllers/ads"
  MeBay only "want" a very small amount of.....
  Shouldn't it be "wants"?
  Thanks.
  missing single quote at end of line:
  'show
  should be 'show'
  The page templates shown in the diagram all end with *.html.rb extension. Shouldn't they be *.html.erb since they will be processed by ERb?
  Note from the Author or Editor:The .html.rb extensions on that page should be html.erb
  "What's more, you taken a peek..." should be
  "What's more, you've taken a peek..."
  Note from the Author or Editor:"you taken a peek" should be "you've taken a peek"
  ...."you" taken a peek under the hood of Rails....
  Shouldn't be there a "have" after you?
  Thanks.
  "...user is asking for /ads/3, ..." should be
  "...user is asking for /seller/3, ..."
  Note from the Author or Editor:In the intro paragraph on pages 71/72, "/seller/:id" should be "/sellers/:id"
  In the annotation on page 72 "/ads/3" should be "/sellers/3"
  'An index pag.' should be 'An index page'
  Note from the Author or Editor:Annotation on the "All Ads" page should be "An index page."
  I think it should be "page".
  An index "pag".
  Thanks.
  should the following sentence be "Ruby on Rails". (on) INSTEAD OF (or)?
  Ruby or Rails
  Thanks.
  One forward slash missing from the routing example if we want to stay consistent. Second line should read /ads/ instead of ads/
  The code in the book is as follows:
  map.connect '/ads/:id', :controller => 'ads', :action => 'show'
  map.connect 'ads/', :controller => 'ads', :action => 'index'
  It should be:
  map.connect '/ads/:id', :controller => 'ads', :action => 'show'
  map.connect '/ads/', :controller => 'ads', :action => 'index'
  Note from the Author or Editor:The line of code beginning:
  map.connect "ads/"...
  should be
  map.connect "/ads/"...
  It doesn't keep it's own
  should be
  It doesn't keep its own
  Should it be "its", instead of "it's"
  ...It doesn't keep "it's" own copy of an object, it just remembers
  where they live.
  Thanks.
  'form_for' helper
  We are actually using the 'remote_form_for' in both _edit.html.erb and _new.html.erb
  (Beyond Scaffolding)
  Loops can be added to page
  templates using scriplets
  The block of code a the top pointed to by the long arrow:
  for ad in @ads
  print '<li><a href="'
  print ad.id
  print '">'
  print ad.name
  print '</a></li>'
  end
  should read: ( added to line 2: /ads/ )
  for ad in @ads
  print '<li><a href="/ads/'
  print ad.id
  print '">'
  print ad.name
  print '</a></li>'
  end
  Download this!
  Instructions are to download style sheet, but no style sheet is given at web address. I checked the public directory for chapter2 and it is not in the zipped file either.
  Note from the Author or Editor:A copy of the file public/stylesheets/default.css needs to be taken out of and given a separate link on just as development.sqlite3 currently is.
  It will obviously also need to remain in the zip file.
  I downloades and uses the layouts/ads.html.erb as explained in chapter 2. However when I later created the form on page 112 it breaks the layout, so that the content runs down into the footer. This despite of the thet fact that <%= yield %> is in <div id="content">?
  Why is this?
  Thanks
  Note from the Author or Editor:It's a stylesheet issue. Doesn't handle browser resize very well.
  I think "the" has to be "a".
  Is there "the" problem with inserting...
  Thanks.
  Shouldn't it be "puts". With an (s)?
  ..., Rails already "put" quite a few
  Thanks.
  The <% form for %> tag is missing an underscore.
  It should be <% form_for %>
  '...no other attributes avaialble, ..." should be
  '...no other attributes available, ..."
  Note from the Author or Editor:"Available" is mis-spelled in the top annotation.
  Okay so you state - hey before you reference @ad you have to create in the controller. Excellent. Did it. Have the view for new.html.erb. But no form. Just the words "New ad".
  tried moving you app folder over mine. Same result. No form.
  2 hours later. Looked at rails documentation
  at Module
  ActionView::Helpers::FormHelper
  Whoa - none of the example say the way you are calling is valid.
  Changed your code:
  <% form_for(@ad,:url=>{:action=>'create'}) do |f| %>
  to
  <% form_for :ad,:url=>{:action=>'create'} do |f| %>
  Bam!! It works - sooooooo.
  or you could also change it to:
  <% form_for(:ad, @ad,:url=>{:action=>'create'}) do |f| %>
  Otherwise thank you for a wonderful book. Wow what a way to learn. you guys rock!!!
  Note from the Author or Editor:Replace "@ad" in the second line of the HTML on page 114 with ":ad"
  "new html.erb" should be "new.html.erb"
  Shouldn't the seconf "of" be removed?
  ...with a set of hash table "of" values that will be...
  Thanks.
  Note from the Author or Editor:Change:
  set of hash table of
  to:
  hash table of
  Shouldn't "That" be "That's"?
  "That" way, if someone enters a record,.....
  Thanks.
  The second and fourth screen shots should be switched.
  The 'All Ads' screenshot should forward link to the screenshot with Description of 'Suit person with left foot'
  The 'Editing Leather boot' screenshot should forward link to the screenshot with Description of 'High quality kid-leather...'
  Note from the Author or Editor:The screenshots with "/ads/40" at the ends of the URLs need to be switched.
  The class should read"AdsController" and not "AdController"
  "requires needs a model object to work."
  choose one of "requires needs"
  Note from the Author or Editor:Change to "needs"
  One of the fridge magnets has a typo. The magnet "search_string" should be :search_string
  Note from the Author or Editor:The magnet containing:
  "search_string"
  should contain
  :search_string
  The magnets offer the choice of "search_string", but in the solution on the next page, the answer is :search_string.
  The URL to download the "ready bake code" ends in books/rails. The correct URL ends in books/hfrails.
  The paragraph starts with: WIth a model form ...
  The second letter is capital, should be corrected to: With a model form ...
  Note from the Author or Editor:"WIth" should be "With"
  params is not an Array but a Hash.
  Page title "use the params array" should be
  "use the params hash"
  Note from the Author or Editor:Replace "use the params array" with "use the params" (don't use either the word "hash" or "array") because params is neither.
  '...the string the user is searching form.' should be
  '...the string the user is searching for.'
  Note from the Author or Editor:"is searching form" should read "is searching for"
  '...no object to with a single...' should be
  '...no object with a single...'
  Note from the Author or Editor:'...no object to with a single...' should be
  '...no object with a single...'
  "finder for each of it's attributes"
  it should be "its"
  '...and avoid a type security attack...' should be
  '...and avoid a type of security attack...'
  Note from the Author or Editor:"type security" should be "type of security" in the final annotation.
  If the user is on the edit form page, shouldn't the button show 'Update' instead of 'Create'?
  Note from the Author or Editor:Needs an updated screenshot for the edit screen. You will need to contact me.
  'Some people are have been leaving...' should be
  'Some people have been leaving...'
  Note from the Author or Editor:"Some people are have" should be "Some people have"
  "trainer's name need to completed"
  should be "need to be completed"
  Note from the Author or Editor:Should be:
  "Trainer's name needs to be completed"
  '...on new adds were completed,...' should be
  '...on new ads were completed,...'
  Note from the Author or Editor:"adds were" should be "ads were"
  "Now what happens now if we miss..."
  Skip ONE of these two "now", so
  either "Now what happens if we miss..."
  or "What happens now if we miss..."
  sounds right to me.
  Note from the Author or Editor:Change to:
  What happens now if we miss
  'Coconut Airways need a booking system' should be
  'Coconut Airways needs a booking system'
  Note from the Author or Editor:'Coconut Airways need a booking system' should be
  'Coconut Airways needs a booking system'
  In the 2nd sentence "Here's the content of our _new_seat.html.erb partial." only the partial file name should be printed in the fixed width font face. So the word "our" in this sentence has been printed in the wrong font face.
  'The render call tell Embedded Ruby...' should be
  'The render call tells Embedded Ruby...'
  Note from the Author or Editor:'The render call tell Embedded Ruby...' should be
  'The render call tells Embedded Ruby...'
  The render call "tell" Embedded Ruby to process the partial and include its output at that point in the file.
  I think "tell" has to be "tells" (With an (s) at the end).
  Thanks.
  The word 'new' ("...to provide the new _seat_list.html.erb partial...") has the wrong font; it should have the same font as the preceding word, 'the'.
  Note from the Author or Editor:"provide the new" should all be in the Body style.
  "Remove the list to"
  should be "Remove the link to"
  New partial is given name _seat_list.html; thereafter it is referred to as _seat_list.html.erb
  Paragraph ends with "Let's call this new partial _seat_list.html:"
  should read "Let's call this new partial _seat_list.html.erb:"
  Seat.find_all_for_flight_id(...)
  should be:
  Seat.find_all_by_flight_id(...)
  app
  views
  flight.rb
  should be
  app
  models
  flight.rb
  The figure should read: app models seat.rb
  instead of: app views seat.rb
  Q: How do I call a partial form a layout?
  A: Using a render method, just like you would from a partial.
  I believe this should read:
  A: Using a render method, just like you would from a template.
  The file ending .erb should be formatted the same way as the rest of the file name: app/views/flights/show.html..
  Note from the Author or Editor:Change the font of the "erb" at the start of the line so that it is in code style.
  Last line ends in "return it to the browser."
  This should be, "returns it to the browser."
  (The controller looks...generates...and returns...)
  The heading for "Flight" should be deleted, i.e., instead of "Flight Name Baggage", it should be "Name Baggage". This can be achieved by deleting the line in the HTML code:
  <th>Flight</th>
  from the file _seat_list.html.erb (under /app/views/flights).
  Actually this (deletion) should have been done on pg.242 in Ch. 6.
  The text, html source fragment and top of the screenshot refer to flight 2, but the seat list shown is for flight 1
  In "We can get around this is by giving..." remove the "is".
  "The presence of the value in a request show that a request..."
  'show' should be 'shows':
  "The presence of the value in a request shows that a request..."
  The answer says the javascript_include_tag helper "adds a random number", but that's not true.
  The helper actually adds the target file's mtime.to_i value.
  Note from the Author or Editor:Change "random number" to "long number"
  The answer describes as though a new copy of the asset file will everytime be downloaded as the users request the page, but it's untrue.
  A new copy of the file will be downloaded only when the file was updated or the browser missed the cache.
  Note from the Author or Editor:Change the last answer to:
  "It means that if anything changes in your JavaScript library, the user will always get the latest version."
  "But how do we make this the..." should be
  "But how do we make this..." or
  "But how do we make the..."
  Note from the Author or Editor:s/be "But how do we make the form work..."
  "you might expect that you will need to how to write JavaScript code" should be
  "you might expect that you will need to know how to write JavaScript code"
  "...the HTML in the 'notices' <div/>..." should be
  "...the HTML in the 'notice' <div/>..."
  The 'notices' code magnet should be a 'notice' code magnet on page 299.
  Note from the Author or Editor:On page 299 change the instructions on the Code magnets from:
  ...HTML in the 'notices'...
  to
  ...HTML in the 'notice'...
  Change the 'notices' magnet to 'notice'
  It would be helpful to say which file this is from. I've assumed _new_seat.html.erb, since we are creating a new seat.
  Note from the Author or Editor:Add an annotation to the code and label it:
  _new_seat.html.erb
  "the page object will generate code to updates the notice" should be
  "the page object will generate code to update the notice"
  The heading says "The completed code CAN WILL now do several things"
  It should be:
  "The completed code can now do several things"
  '...we used Ajax to download new version...' should be
  '...we used Ajax to download a new version...'
  in the code: :root => "name" should read: :root => "data"
  "and you will found several places" should read
  "and you will find several places"
  '...and the XML bulder template...' should be
  '...and the XML builder template...'
  "you won't need to use all the snippets"
  Not true: all 10 items are used.
  Note from the Author or Editor:Add another "end" snippet on both page 351 and 352.
  In the 1st paragraph, 3rd line, the word "the" is doubled.
  Instead of "could probably just remove the the list of incidents..."
  write "could probably just remove the list of incidents..."
  "The people ... figured that ..."
  In school we learned it should be: "The people ... figured OUT that ..."
  Please let me know when I am wrong via email instead of silent deleting this submission.
  "...our action will need to generated from a partial..."
  should be "...need to be generated..."
  "Once you've clicked on the save button, you're to the cut down..."
  should read:
  "Once you've clicked on the save button, you're redirected to the cut down..."
  Why is params using strings here, params['latitude'] and param['longitude'], instead of symbols, params[:latitude] and params [:longitude]?
  There are many examples of params[:id], including back on pages 362 & 364. And there's params[:seat] on p. 289.
  Note from the Author or Editor:Contacted the learner direct.
  Instead of 'When the map calls the "new" action is sends...'
  write (the same as on page 371) 'When the map calls the "new" action it sends...'
  On this page, the scenario described is that the form remains displayed on the same screen after "create" is submitted. However, this is not what happens - the user is actually sent to another screen via `redirect_to(@incident)`.
  This is borne out on pg 337, depicting existing code:
  format.html { redirect_to(@incident) }
  Full method:
  def create
  @incident = Incident.new(params[:incident])
  respond_to do |format|
  if @incident.save
  flash[:notice] = 'Incident was successfully created.'
  format.html { redirect_to(@incident) }
  format.xml { render :xml => @incident, :status => :created, :location => @incident }
  else
  format.html { render :action => "new" }
  format.xml { render :xml => @incident.errors, :status => :unprocessable_entity }
  end
  end
  end
  Also worth noting, since we're no longer redisplaying the "new.html.erb" form, there is no <%= f.errors %> tag to display the flash message to, so the "flash" code has no visible effect.
  HTH,
  Cosmo
  Note from the Author or Editor:2ns screenshot is wrong. It should show a read-only view of the data, rather than the form.
  The file tree containing the _new.html.erb file is missing the incidents directory. It should have this structure:
  app/views/incidents/_new.html.erb
  "...calls all of it's own..."
  should be "...its..."
  "That return true..."
  should be "That returns true..."
  Last question reads:
  "But we don't have fields for id, created_ad and updated_at fields?"
  this should read:
  "But we don't have fields for id, created_ad and updated_at?"
  When updating this code using a route helper:
  <p><%= link_to "Edit", "/incidents/#{incident.id}/edit" %></p>
  Shouldn't the updated code use edit_incident_path instead of edit_incident_url?
  Note from the Author or Editor:edit_incident_url should be replaced with edit_incident_path
  I assume the correction on p. 389 replacing "edit_incident_url" with "edit_incident_path" carries forward to this page too, in both code examples near the bottom of the page.
  "Well that works pretty like the new form did."
  pretty much?
  '...harder to reader and...' should be
  '...harder to read and...'
  Are PUT and POST swapped on this page?
  Looking the "rake routes" output on p. 388 (and repeated on pp. 393 & 394):
  1. an http POST (in both rows) causes a create action.
  2. an http PUT (in both rows) causes an update action.
  5th A[nswer]:
  "PUT is used for requests that will create new records ..."
  should be
  "PUT is used for requests that will update records ..." ?
  7th A[nswer]:
  "If the object has already been saved, then form_for generates a form that will use the POST action. If the object is new, then it will generate a form that uses PUT."
  should be
  "If the object has already been saved, then form_for generates a form that will use the PUT action. If the object is new, then it will generate a form that uses POST." ?
  Note from the Author or Editor:7th answer on p. 397 - swap "POST" and "PUT"
  "Visti us here for details..." should be "Visit..." (?)
  How do you make the most out **the** Rails and the Ruby language?
  Note from the Author or Editor:Change text to be:
  How do you make the most out of Rails and the Ruby language?
  "Pretty-print the contents of an array"
  should be "Pretty-print the contents of a hash"
  "alias my_method" will cause syntax error.
  It should be
  "alias another_name my_method"
  or sth.
  "That why" should be "That's why"
  development:
  adapter: oracle
  should read:
  production:
  adapter: oracle
  development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000
  should be
  production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000
  This Oracle example won't work.
  You should specify database: parameter whenever you use oracle driver (instead, host: is optional).
  Note from the Author or Editor:In the Oracle config change:
  host: mydatabaseserver
  to:
  database: mydatabasename
  "These are the used in the RESTful routes in a scaffold application."
  should be "These are the urls..."
  "The third principle... there should __ a well defined..."
  Missing "be" a well defined...
  2nd para:
  Rails make*S* it really..
  3rd para:
  Play with paths [period]
  6th para:
  ...latest version of the rails scripts... cap. Rails
  rake rails:freeze:edge
  installs Edge Rails into vendor/rails directory. Not vendor/plugins
  © 2013, O’Reilly Media, Inc.
  (707) 827-7019
  (800) 889-8969
  All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.