Anyone know a way to create html comments with the names of the views?

I work with a lot of designers. The question I get all the time is:
Where is the template that displays xyz? I was thinking it would be
nice if rails would print the name of each template it loads as an
html comment like so:

<!-- LAYOUT: layouts/application.html.erb -->
<html><head>etc..</head>
<body>
<!-- TEMPLATE: blog/index.html.erb -->
<!-- TEMPLATE: blog/_side_bar.html.erb -->
</body>
</html>

Not having to answer these questions all day would really make my day.
I poked around the rails code for a couple hours and don't see an
obvious way. Does anyone have an idea on how to do this?

Thanks!

I work with a lot of designers. The question I get all the time is:
Where is the template that displays xyz? I was thinking it would be
nice if rails would print the name of each template it loads as an
html comment like so:

Seems like you can do this by overriding render_template in
template.rb. Seems like a fairly handy idea actually, when I have
worked with designers that's definitely a question that has come up
often!

Fred

NICE! It will be my next plugin! If nil? of course! :wink:

iPhonized!

For now, I just slapped this in a file in lib and include it in
environment.rb:

module ActionView
  class Template
    def render_template(view, local_assigns = {})
      "<!-- TEMPLATE: #{self.template_path} -->\n" + render(view,
local_assigns)
    rescue Exception => e
      raise e unless filename
      if TemplateError === e
        e.sub_template_of(self)
        raise e
      else
        raise TemplateError.new(self, view.assigns, e)
      end
    end
  end
end

Works in Rails 2.3 anyway. I'm sure there is a cleaner way, and it
should probably be made into an environment specific config option.
But I'm in a hurry right now.

Thanks for the pointer.

Use "<!-- TEMPLATE: #{self.load_path}/#{self.template_path} -->\n"
instead to get the full path from RAILS_ROOT. Useful if you're
pulling in views from plugins/engines.

For now, I just slapped this in a file in lib and include it in
environment.rb:

For what it's worth i've pluginised this: http://github.com/fcheung/tattler/tree/master

Fred

Coming in late, but there's also this..

http://github.com/gwynm/noisy_partials/tree/master

My designer works it out from the URL and routes file

Blog: http://random8.zenunit.com/
Learn rails: http://sensei.zenunit.com/

*plug-in-ized* and blogged! quick! :slight_smile:

I'm using it and it's cool, but it should probably check if any layout
statement is present on the controller: if layout is nil then I
probably don't need/want any comment in the template :slight_smile:

(found this with the :tex view of instiki clone)

thanks 4 the plugin!

I'm using it and it's cool, but it should probably check if any layout
statement is present on the controller: if layout is nil then I
probably don't need/want any comment in the template :slight_smile:

More precisely if what it's rendering isn't html it probably shouldn't
be putting html comments in!

Fred