Who caused the view to be rendered

0 views
Skip to first unread message

Ralph Shnelvar

unread,
Dec 31, 2009, 7:08:58 AM12/31/09
to rubyonra...@googlegroups.com
Newbie here.

I placed a debugger statement into a view and I then executed a
where
command hoping to find which controller caused the view to be rendered.

The stack is interesting but does not seem to give me the info I ned.

Is there a way to find out what caused the view to be rendered?
--
Posted via http://www.ruby-forum.com/.

Student

unread,
Dec 31, 2009, 8:57:22 AM12/31/09
to Ruby on Rails: Talk
By default, views are tied to controllers. So the views in app/views/
c1s are invoked by the app/views/c1s_controller.

However, it is possible to render views from an arbitrary controller.
grep render app/controllers/*. Partials might be called from helpers
or other views.

Ralph Shnelvar

unread,
Dec 31, 2009, 9:41:33 AM12/31/09
to rubyonra...@googlegroups.com
Student Jr wrote:
> By default, views are tied to controllers. So the views in app/views/
> c1s are invoked by the app/views/c1s_controller.
>
> However, it is possible to render views from an arbitrary controller.
> grep render app/controllers/*. Partials might be called from helpers
> or other views.

Yes, but a controller can generate several views. Is there a way to get
to the line of code in the controller that generates the view and/or
partial.

Student

unread,
Dec 31, 2009, 10:01:57 AM12/31/09
to Ruby on Rails: Talk
Different question, different answer.

There are rules. Of course, an explicit call via render comes first.
If there is no render, then the view with the same name as the action
is rendered.
Which is why a stack trace is not sufficient.

Ralph Shnelvar

unread,
Dec 31, 2009, 10:17:33 AM12/31/09
to rubyonra...@googlegroups.com
Student Jr wrote:
> Different question, different answer.
>
> There are rules. Of course, an explicit call via render comes first.
> If there is no render, then the view with the same name as the action
> is rendered.
> Which is why a stack trace is not sufficient.
>

Are you saying that if the view is rendered via an explicit render that
it will be on the stack trace? (Sorry, not at a computer where I'm
running rails but I'd like to have the answer so I can think about it.)

Student

unread,
Dec 31, 2009, 10:39:52 AM12/31/09
to Ruby on Rails: Talk
I believe so.

Marnen Laibow-Koser

unread,
Dec 31, 2009, 1:06:10 PM12/31/09
to rubyonra...@googlegroups.com
Ralph Shnelvar wrote:
> Newbie here.
>
> I placed a debugger statement into a view and I then executed a
> where
> command hoping to find which controller caused the view to be rendered.
>
> The stack is interesting but does not seem to give me the info I ned.
>
> Is there a way to find out what caused the view to be rendered?

Look at params[:controller] and params[:action].

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
mar...@marnen.org

Reply all
Reply to author
Forward
0 new messages