That site is similar to a lot of other stuff I''ve seen. It appears that
catching missing method errors is a much more common problem than catching
missing *template* errors.
I can''t use method_missing, because my error happens after the call to
render (after the correct action method has begun executing)... and I
don''t
believe template_missing exists... but I have found a (the?) solution.
As it turns out, rescue_action_in_public can catch the MissingTemplate
error, but I was not detecting the error properly in my previous attempts. I
was failing to use global scope when specifying Missing Template.
Here''s
what works:
if exception.kind_of? ::ActionController::MissingTemplate
render :status => 404, :text => (IO.read(File.join(RAILS_ROOT,
''public'', ''
404.html'')))
end
That code is effectively converting 500 errors from MissingTemplate into 404
errors just like other rails features. Excellent.
Notice the "::" before ActionController. Failing to include that
results in
the exception handler throwing an error of its own.. which I didn''t
notice
before.
On 1/24/07, Matias Surdi
<matiassurdi-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:>
>
> http://6brand.com/rails-custom-404-pages
>
>
>
>
>
> Aaron Longwell escribió:
>
> > I have a site I''m building that has the template dynamically
chosen
> based
> > upon some parameters of the request. There are cases where a
nonexistent
> > template will be sent to the render method. For purposes of my
> > application, this is not a serious, fatal error, but a simple HTTP 404
> > error code. Unfortunately, Rails disagrees, and it''s sending
a 500 error
> > message in production.
> >
> > How can I override this behavior?
> >
> > What is the justification for template missing to be treated as a 500
> > error instead of 404 error?
> >
> >
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---