Wow. All those answers and no one seems to be able to just answer your question succinctly... or correctly for that matter.
Redirect means just what it says: send a redirect (status 302) back to the browser, telling it to perform a get request for the action indicated.
Render means just render the appropriate template and return html.
It is good form, when handling a POST request -- which is what "update" is doing -- to redirect the browser to the next page rather than simply returning html. If you return a html on a POST request, then the browser simply displays that page and, if the user clicks "reload" or "back", they get a confusing (to most people) alert from the browser that they're resubmitting a POST. Even worse, if the POST is submitted again and the server doesn't realize it's a repost, the action done in the POST (say, like buying a new computer... heh) could be done all over again!
I actually believe that *both* success and failure should redirect the browser. I think this is one glaring failure of the rails generators: they're not practicing what they preach completely. The problem is that after a redirect, it's a whole new request and the errors that were put in the model object are lost. You can get around this by storing the model object in the flash through the redirect, but that's probably more complicated than the generator writers wanted to deal with.
Hope that helps. If you still don't understand "render" and "redirect", you might want to do some reading on how http, html, and web apps work before tackling rails.
Ben
Chris Olsen wrote: