For anyone else who has this issue the solution was simple.

instead of
render :show_page

I used
render 'show_page.html'

Don't think.  Just render the HTML!

In 99% of my code I let rails decide but there are a few places it
made sense for me to do this.

Of course, if a search engine asks sends "Accept: image/jpg" they will
get HTML from me.  I tried this on some other sites and they returned
html even if an image was requested so I am no worse than them  :-)



On Jan 3, 8:59 am, Tony Primerano <[email protected]> wrote:
> It should be noted that while adding this fixed my test cases it
> breaks the application when viewed from a browser.      :-\
>
> I guess this is just the rails way.   Unless a specific accept header
> is sent rails does not know what to return.
>
> AFAIK there is no way to specify a default handler.  It seems safe to
> assume that erb should be used when the Accept header doesn't map to a
> specific mime-type. Is there a way to make this happen or is there a
> reason this shouldn't be done?
>
> On Dec 31 2010, 6:21 pm, TonyPrimerano<[email protected]>
> wrote:
>
> > well.  adding
>
> > Mime::Type.register "text/*", :html
>
> > to config/initializers/mime_types.rb works but it gives a warning on
> > startup
>
> > actionpack-3.0.3/lib/action_dispatch/http/mime_type.rb:98: warning:
> > already initialized constant HTML
>
> > Seems like rails doesn't want us to extend the definition of an HTML
> > mime type.   Probably for the better,  any suggestions.  I could ping
> > thunderstone and have them fix their crawler but I'm wondering if
> > there is a better way Rails an handle this case.
>
> > On Dec 31, 4:47 pm, TonyPrimerano<[email protected]> wrote:
>
> > > The thunderstone crawler (http://search.thunderstone.com/texis/
> > > websearch/about.html) sends the folliowing HTTP accept header when
> > > requesting pages
>
> > > Accept:text/*, application/javascript, application/x-javascript
>
> > > This results in a "Missing template" exception
>
> > >text/* isvalid.  How do I tell my rails app to treat this as rhtml by
> > > default instead of returning a 500?
>
> > > Missing template [controller]/[method] with
> > > {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:"text/> > 
> > > *", :js], :locale=>[:en, :en]}
>
> > > I'll post a response if I figure it out
> > > TonyPrimerano
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to