which views are rendered for an URL

Hi,

Is there a way I can figure out which files are run for a specific
URL?

Given http://www.planet.com/countries files like: countries/
index.html.erb, countries/_country.html.erb, layouts/
application.html.erb and so on.

Thank You

Marcelo Barbudas wrote:

Given http://www.planet.com/countries files like: countries/
index.html.erb, countries/_country.html.erb, layouts/
application.html.erb and so on.

You really need to look at the routing and the controller code and the
request type to know for sure.

http://www.planet.com/countries will generally go to the countries
controller, the index method in that controller, using
application.html.erb and the index.html.erb view to render the view.
That is all dependent on the assumption that the application does not
diverge from 'vanilla' Rails.

What template does the controller actually use? Does the index method go
to index.html.erb, or is the controller method actually invoking a
different view?, etc...

That'll get you to the first view level. Then you need to see what the
particular view does. Does it include partials? If so, which ones and
from where?

If developer followed starndart rules and pure REST, you could guess that

countries/105

will render

app/views/countries/show.html.erb

But sometimes it’s not that simple. So, you need to look at routes.rb to find which controller and action this URL calls. And then look inside action for irregular ‘render :something’.

Also, look through log/development(test/production).log for strings like “Rendering template something/something.erb”.

I’m not sure about Webrick, but Mongrel will show you that info in logs.

Probably not exactly what you’re after, but http://github.com/anildigital/partioprint might be of interest.

It adds (in dev mode) the names of partials as HTML comments in the output rendered via ERB files.