This is an artifact of some overly clever caching of the globbed
templates. I will fix this when i get back home tomorrow.
Thanks
-Ezra
On Sep 29, 2007, at 9:14 AM, Dusty Doris wrote:
> Hi all,
>
> I was just wondering if this is the intended behavior. Here is my
> setup:
>
> controller
>
> def index
> respond_to do |f|
> f.xml { render :xml => true }
> f.html { render :layout => :none }
> end
> end
>
> In my views I have a file for each type
>
> index.herb
> index.xerb
>
> The first request I send is cached and interferes with the other one.
> For example, if I send an xml request first, followed by html, here is
> what I see (those are just some debug statements I put in to follow
> the code)
>
> Request 1 "Accept: text/xml"
>
> - "starting find_template, options are :"
> {:action=>"index", :ext=>"rxml,xerb,builder"}
> - match on elsif action
> path is : /Users/dusty/nms/app/views/testing/index
> - no cache, created glob
> glob is : /Users/dusty/nms/app/views/testing/index.
> {rxml,xerb,builder}
> - searched Dir[glob].first and found
> found is : /Users/dusty/nms/app/views/testing/index.xerb
> - finished find_template, template is:
> "/Users/dusty/nms/app/views/testing/index.xerb"
>
> Request 2 "Accept: text/html"
>
> - "starting find_template, options are :"
> {:action=>"index"}
> - match on elsif action
> path is : /Users/dusty/nms/app/views/testing/index
> - finish else, matched cached
> cached is : /Users/dusty/nms/app/views/testing/index.xerb
> - finished find_template, template is:
> "/Users/dusty/nms/app/views/testing/index.xerb"
>
> If I restart merb and reverse the order
>
> Request 1 "Accept: text/html"
>
> - "starting find_template, options are :"
> {:action=>"index"}
> - match on elsif action
> path is : /Users/dusty/nms/app/views/testing/index
> - no cache, created glob
> glob is :
> /Users/dusty/nms/app/views/testing/index.
> {html.erb,jerb,herb,haml,mab,js.erb,xerb,rhtml,builder,rxml,erb}
> - searched Dir[glob].first and found
> found is : /Users/dusty/nms/app/views/testing/index.herb
> - finished find_template, template is:
> "/Users/dusty/nms/app/views/testing/index.herb"
>
> Request 2 "Accept: text/xml"
>
> - "starting find_template, options are :"
> {:action=>"index", :ext=>"rxml,xerb,builder"}
> - match on elsif action
> path is : /Users/dusty/nms/app/views/testing/index
> - finish else, matched cached
> cached is : /Users/dusty/nms/app/views/testing/index.herb
> - finished find_template, template is:
> "/Users/dusty/nms/app/views/testing/index.herb"
>
> * this caught me by suprise, it searched for layouts too.
>
> - "starting find_template, options are :"
> {:layout=>"testing"}
> - match on elsif _layout
> path is : /Users/dusty/nms/app/views/layout/testing
> - no cache, created glob
> glob is : /Users/dusty/nms/app/views/layout/testing.
> {html.erb,jerb,herb,haml,mab,js.erb,xerb,rhtml,builder,rxml,erb}
> - failed Dir[glob].first and set @merb_unmatched:
> glob is : /Users/dusty/nms/app/views/layout/testing.
> {html.erb,jerb,herb,haml,mab,js.erb,xerb,rhtml,builder,rxml,erb}
> - "starting find_template, options are :"
> {:layout=>:application}
> - match on elsif _layout
> path is : /Users/dusty/nms/app/views/layout/application
> - no cache, created glob
> glob is : /Users/dusty/nms/app/views/layout/application.
> {html.erb,jerb,herb,haml,mab,js.erb,xerb,rhtml,builder,rxml,erb}
> - searched Dir[glob].first and found
> found is : /Users/dusty/nms/app/views/layout/application.html.erb
>
> So, I suppose that the EASY workaround is to rename my xml template to
> something like index_xml.xerb and then call it like:
>
> render :xml => :index_xml
>
> I was just wondering if that was the intended behavior, that's all.
> The documentation threw me off for a second there because of this
> line.
>
> # render :xml => true
> # render :xml => true, :action => "buffalo"
> #
> # Renders the buffalo.xerb template for the current controller.
>
> So, render :xml => true, does work out of the box. But, if you have
> an another view with the same name before the extension, they
> interfere with eachother. It this is intended, then I'll supply a
> little documentation patch to warn about that.
>
> Thanks
> Dusty Doris
> _______________________________________________
> Merb-devel mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/merb-devel
-- Ezra Zygmuntowicz
-- Founder & Ruby Hacker
-- [EMAIL PROTECTED]
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)
_______________________________________________
Merb-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/merb-devel