Using Getting Started with Rails — Ruby on Rails Guides as a guide. Create, Read, Delete all work. Update fails:
NoMethodError in WordsController#update
private method `update’ called for #Word:0xae98360
(I chose to make a list of words rather than of posts.)
The Request parameters:
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"HizJaASbs53QXfgRZk8SbZ+6OcDigR7LtDtpEGHXwMY=",
"word"=>{"word"=>"feline",
"definition"=>"Like a cat; stealthy"},
"commit"=>"Update Word",
"id"=>"3"}
The "update" method from the controller:
class WordsController < ApplicationController
...
def update
@word = Word.find(params[:id])
if @word.update(params[:definition])
redirect_to @word
else
render 'edit'
end
end
rake routes:
…
PUT /words/:id(.:format) words#update
…
Context information:
rails -v
Rails 3.2.2
ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [i686-linux]
In case relevant: CentOS release 5.5 (Final)
I’m sure this is a simple thing and may have to do with a different version of Rails. However, I’ve not had success pursuing that line.
Does anyone have a good idea why I’d be getting the error on the update method?
Thanks!