RespondsToParent

Adds responds_to_parent to your controller to respond to the parent document of your page. Make Ajaxy file uploads by posting the form to a hidden iframe, and respond with RJS to the parent window.

Example

Controller:

class Test < ActionController::Base
  def main
  end

  def form_action
    # Do stuff with params[:uploaded_file]

    responds_to_parent do
      render :update do |page|
        page << "alert($('stuff').innerHTML)"
      end
    end
  end
end

main.rhtml:

<html>
  <body>
    <div id="stuff">Here is some stuff</div>

    <form target="frame" action="form_action">
      <input type="file" name="uploaded_file"/>
      <input type="submit"/>
    </form>

    <iframe id='frame' name="frame"></iframe>
  </body>
</html>