degrading ajax calls - how?

Shilo Ayalon wrote:

Hey - I have a few ajax calls in my app that I'm not really sure how to
degrade to html. For the most part, these are functions that insert or
remove elements to/from the dom.

def start_edit
  prod = params[:id]
  params[:row] = "prod_#{prod.id}"
  respond_to do |format|
    format.js { render :template => 'rjs/start_edit' }
  end
end

Any ideas?

Your start_edit action is going to need to respond to format.html.
You'll then need the response to regenerate the full HTML page that
represents the desired page state, since you can't simply manipulate the
DOM.

I suppose you could store the desired page state in an instance variable
from the controller action so your view can determine which version of
the page to draw.

Constants:
VIEWING = 0
EDITING = 1

def start_edit
  @page_state = EDITING
  ...
  ...
end

I'm not really an expert on degrading AJAX to HTML, but this should be a
gist of it though.