Forum: Ruby on Rails Rails tutorial; CRD working, U failing

D64ad32131be178b4a69c1c55e27fe06?d=identicon&s=25 unknown (Guest)
on 2013-08-22 10:58
(Received via mailing list)
Using http://guides.rubyonrails.org/getting_started.html 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!
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2013-08-22 11:37
(Received via mailing list)
On 21 August 2013 19:01,  <rick.toews@gmail.com> wrote:
>     if @word.update(params[:definition])
That should be @word.update_attributes( ..)

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.