link_to_remote patterns/idiom

All,

What's the current line of thinking wrt patterns/best practices for remote calls and subsequent page updates?

For instance, let's say I have a simple link_to_remote call that simple creates a new comment for a given blog post. On success, I'd like to indicate that all was well, on failure, I'd like to give some indication as to why.

Obviously, Rails has some nice (and by nice I mean 'programmer friendly') abstractions for handling this type of functionality but the myriad of options has left me in a state of paralysis.

That said, I'm seeking to understand the preferred/recommended way to pull something like this off:

class CommentController < ApplicationController   def create_comment     @comment = Comment.new(params[:comment])     if @comment.save       # Should I use RJS here to update the page?

      # Should I return some HTML (sans RJS) and use the prototype helper to       # update a DIV?     else       # Would obviously look to stay consistent here.       # Do I use RJS to update the page?       # Shall I send back a non 2XX status code and use prototype helper     end   end end

What be the prevailing pattern? Arggh.

TIA! Cory

You’re right about the myriad of options. You can either return an RJS that will update a div (with an id of comments) with the new comment contained within a partial (_comment) from your app/views/comments directory. (Complicated way)

Alternatively, you could just redirect to the item that you created a comment for which will already (I hope) have a way of iterating over the comments. You could then pass back a flash[:notice] stating the success or failure of your comment posting. (Easy way)