How does view know about instance vars set in controller?


#1

Hi,

I know that the AWDWR says to believe in magic and to not spend Xmas
with people asking this question, but really how does it work under the
hood?

I was looking at the source code of crummy, and it seems that
instance_variable_set and instance_variable_get may be part of the
answer. Is there some resource on that or do I have to dive into Rails
code?


#2

On Mar 22, 6:31 pm, Fernando P. removed_email_address@domain.invalid
wrote:

Hi,

I know that the AWDWR says to believe in magic and to not spend Xmas
with people asking this question, but really how does it work under the
hood?

I was looking at the source code of crummy, and it seems that
instance_variable_set and instance_variable_get may be part of the
answer. Is there some resource on that or do I have to dive into Rails
code?

The method you’re interested in is _copy_ivars_from_controller in
ActionView::Base

Fred


#3

On Tue, Mar 24, 2009 at 11:49 AM, Fernando P.
removed_email_address@domain.invalid wrote:

Is there
somewhere a documentation that could walk me through the Rails’ source
code from the entry point (let’s say Rack) to the response (returned by
Rack to the client)?

To what end?

Following it by hand is a bit tedious, I often lose myself in method
calls that call 3 other methods that call 4 other methods.

Use the “step” command in the debugger.


Greg D.
http://destiney.com/


#4

To what end?
[200, {‘Content-type’ => ‘text/html’}, response]

:smiley:

Use the “step” command in the debugger.
Any experience with Unroller? It seems to do what I want. I’ll give a
try at the step command too.

Thanks,


#5

The method you’re interested in is _copy_ivars_from_controller in
ActionView::Base

Fred

Thank you very much Fred. But how can I find about that myself? Is there
somewhere a documentation that could walk me through the Rails’ source
code from the entry point (let’s say Rack) to the response (returned by
Rack to the client)?

Following it by hand is a bit tedious, I often lose myself in method
calls that call 3 other methods that call 4 other methods.


#6

Use the “step” command in the debugger.
Any experience with Unroller? It seems to do what I want. I’ll give a
try at the step command too.
In put require ‘rubygems’, ‘ruby-debug’ and then debugger right in
script/server, and man there is a lot of stuff to learn.

s[tep] is exactly what I was looking for, up to now I was only using
n[ext] which didn’t do enough for me.

Thanks for the tip :wink: