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

22 views
Skip to first unread message

mixtli

unread,
Apr 3, 2009, 9:06:36 AM4/3/09
to Ruby on Rails: Talk
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!

Frederick Cheung

unread,
Apr 3, 2009, 10:07:30 AM4/3/09
to Ruby on Rails: Talk


On Apr 3, 2:06 pm, mixtli <ronmcclai...@gmail.com> wrote:
> 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

emanuele tozzato

unread,
Apr 3, 2009, 10:14:24 AM4/3/09
to Talk on Rails: Ruby
NICE! It will be my next plugin! If nil? of course! ;)

iPhonized!

mixtli

unread,
Apr 3, 2009, 10:50:34 AM4/3/09
to Ruby on Rails: Talk

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.

mixtli

unread,
Apr 3, 2009, 11:11:10 AM4/3/09
to Ruby on Rails: Talk
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.


Frederick Cheung

unread,
Apr 3, 2009, 1:50:29 PM4/3/09
to rubyonra...@googlegroups.com

On 3 Apr 2009, at 15:50, mixtli wrote:

>
>
> 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

Philip Hallstrom

unread,
Apr 3, 2009, 1:53:58 PM4/3/09
to rubyonra...@googlegroups.com
Coming in late, but there's also this..

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

Julian Leviston

unread,
Apr 3, 2009, 2:28:57 PM4/3/09
to rubyonra...@googlegroups.com
My designer works it out from the URL and routes file

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

Emanuele Tozzato

unread,
Apr 3, 2009, 7:57:18 PM4/3/09
to rubyonra...@googlegroups.com
*plug-in-ized* and blogged! quick! :)

On Fri, Apr 3, 2009 at 10:50 AM, Frederick Cheung
<frederic...@gmail.com> wrote:

Emanuele Tozzato

unread,
Apr 7, 2009, 8:54:18 PM4/7/09
to rubyonra...@googlegroups.com
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 :)

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

thanks 4 the plugin!

On Fri, Apr 3, 2009 at 10:50 AM, Frederick Cheung
<frederic...@gmail.com> wrote:

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


--
Emanuele Tozzato
+1 (619) 549 3230
1985 Sherington Place, #E302
Newport Beach, CA 92663
http://mekdigital.com

Frederick Cheung

unread,
Apr 8, 2009, 3:16:04 AM4/8/09
to Ruby on Rails: Talk


On Apr 8, 1:54 am, Emanuele Tozzato <etozz...@gmail.com> wrote:
> 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 :)
>

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

Fred
> (found this with the :tex view of instiki clone)
>
> thanks 4 the plugin!
>
> On Fri, Apr 3, 2009 at 10:50 AM, Frederick Cheung
>
Reply all
Reply to author
Forward
0 new messages