Equivalent to View Page Source; No AJAX

I am developing a website that does not use AJAX.

What I would like to be able to do on the server side is find the point
in RoR (assuming it exists) where the HTML is "rendered" and capture
that string so that I can manipulate it for my purposes.

To be a little clearer, the user at their browser can do a View Page
Source and then save that HTML to a file. I would like to generate
(i.e. capture) exactly the contents of that string/file on the server
side so that I can save it on the SERVER.

I am not asking for the client to send back the contents of the View
Page Source back to the server. I do not wish to interfere with the
sending of the HTML to the client. I just want to get a copy of that
HTML so that I can save it to a file on the server and have that file
have exactly the same contents as a View Page Source and then Save File
as that file would be on the client.

Is this possible and/or easy to do?

I am developing a website that does not use AJAX.

What I would like to be able to do on the server side is find the point
in RoR (assuming it exists) where the HTML is "rendered" and capture
that string so that I can manipulate it for my purposes.

To be a little clearer, the user at their browser can do a View Page
Source and then save that HTML to a file. I would like to generate
(i.e. capture) exactly the contents of that string/file on the server
side so that I can save it on the SERVER.

Is this possible and/or easy to do?

You could probably do that from an after_filter - you should be able
to play around with response.body.

Fred

Perhaps try to override the content-type:

    @headers["Content-Type"] = "text/plain; charset=utf-8"

Let us know if it works.

"José Mota" <josemota.net@gmail.com> wrote in post #962911:

Perhaps try to override the content-type:

    @headers["Content-Type"] = "text/plain; charset=utf-8"

Let us know if it works.

I'm sorry, Jose, I do not understand this at all.

Frederick Cheung wrote in post #962809:

Is this possible and/or easy to do?

You could probably do that from an after_filter - you should be able
to play around with response.body.

Fred

Fred, this is _exactly_ what I wanted! Thanks.

- - -

For information about after_filer, see page 485 in *Agile Web
Development in Rails* by Dave Thomas.

For the clueless (me), here's a code snippet that works for me

class MarketingController < ApplicationController
  include ApplicationHelper

  after_filter :write_response_body

  .
  .
  .

protected

  @@prefix = 'f:/xxx/'
  def write_response_body
    puts "#{__FILE__} @ #{__LINE__}"
    # puts response.body.length
    html_file_name_to_save =
      @@prefix + params['controller'] + '/' + params['action'] + '.html'
    File.open(html_file_name_to_save,"w") { |f| f << response.body }
  end

end

Ralph Shnelvar wrote in post #962803:

I am developing a website that does not use AJAX.

What I would like to be able to do on the server side is find the point
in RoR (assuming it exists) where the HTML is "rendered" and capture
that string so that I can manipulate it for my purposes.

To be a little clearer, the user at their browser can do a View Page
Source and then save that HTML to a file. I would like to generate
(i.e. capture) exactly the contents of that string/file on the server
side so that I can save it on the SERVER.

I am not asking for the client to send back the contents of the View
Page Source back to the server. I do not wish to interfere with the
sending of the HTML to the client. I just want to get a copy of that
HTML so that I can save it to a file on the server and have that file
have exactly the same contents as a View Page Source and then Save File
as that file would be on the client.

Is this possible and/or easy to do?

Sure. Use render_to_string.

Best,