Global documentation for Rails' ActionView

I got myself rather confused yesterday. It started when I put a "form_remote_tag" in a helper method. I get the error that _erbout is not defined. I dug around and found suggestions to put it into a template and do render(:partial => 'foo', ...).

I was curious what magic render did that the helper was not doing on its own. That led me to bump into more confusion. Obviously the code works but I'm somewhat lost as to how. Here is my specific question.

In render :partial, it calls render_for_text which sets @performed_render to true. That implies to me that I can not call render again for another partial but I know from past experience that I can.

Both of these tie back to the environment that is set up when a template is rendered. I'd like to know where that code is at and if there is some high'ish level documentation that can help me get started in understanding how these things work.

Thank you for your time, pedz

I got myself rather confused yesterday. It started when I put a "form_remote_tag" in a helper method. I get the error that _erbout is not defined. I dug around and found suggestions to put it into a template and do render(:partial => 'foo', ...).

I was curious what magic render did that the helper was not doing on its own. That led me to bump into more confusion. Obviously the code works but I'm somewhat lost as to how. Here is my specific question.

In render :partial, it calls render_for_text which sets @performed_render to true. That implies to me that I can not call render again for another partial but I know from past experience that I can.

it's reset later in this particular case

Both of these tie back to the environment that is set up when a template is rendered. I'd like to know where that code is at and if there is some high'ish level documentation that can help me get started in understanding how these things work.

start from base.rb in rails/actionpack/lib/action_view/ (and also in action_controller). As far as I know there isn't documention about this level of implementation detail other than the code. A lot of this is currently being tidied up.

Fred