I went to http://127.0.0.1:3000/bottles/new and I made a bottle
name- tod
size- 234
I then go to http://127.0.0.1:3000/bottles/0/edit
and I see the bottle there in the form
I then change tod to todd and click 'save'
here's the weird thing
I see the URL change to
http://127.0.0.1:3000/bottles/1
but i'd expect it to change to
http://127.0.0.1:3000/bottles/0
I'd expect the form to be submitted to /bottles/0 but it's not, it's submitted to /bottles/1
And the params have :id=1
So when it comes to my update, I have to write this line in the controller, subtracting 1 from the id
@abottle=Bottle.all[params[:id].to_i-1]
I can see that there is a difference of definition of :id that one could use… The id in the URL could be either
A)The index in the array e.g. Bottle.all[params[:id]] (Which is what i've got for the edit action). or
B) The id attribute of the object, (Which is what i've got for the update action @abottle=Bottle.all[params[:id].to_i-1]
One could say, it's 'A', the URL. But then why should the update URL have an :id that is one up from the ID in the edit URL?
Thanks
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3e864d52-d02b-4aa4-9839-ba550b472fb0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment