I don't know if rescue_from Exception should catch everything as you
expect, what I do know is that you can use the router to point to a normal
controller / action(s) and use any layout you want for that.

Check this post at Plataformatec's blog:
http://blog.plataformatec.com.br/2012/01/my-five-favorite-hidden-features-in-rails-3-2/,
it details a bit how the feature works.

On Wed, Oct 8, 2014 at 5:01 PM, Tim Raymond <xtjraymo...@gmail.com> wrote:

> I'm not really sure whether this is a doc bug or a regular bug, so I
> figured I would open a thread here to figure out which.
>
> If you use `rescue_from Exception` to render a dynamic 500 page with your
> application layout, and the exception was triggered from the application
> layout to begin with, it will escape the dynamic error page and render the
> one in `public`. Granted, this sounds obvious, but the documentation for
> rescue_from states that "Exceptions raised inside exception handlers are
> not propagated up," when in this situation that's clearly not the case.
>
> I have a reproduction of this issue here:
> https://github.com/timraymond/rails-issue-rescue-from and a Docker image
> of it, if that's your cup of tea:
> https://registry.hub.docker.com/u/timraymond/rails-issue/ (docker pull
> timraymond/rails-issue). If you visit the "/explode" path, the exception
> raised there will be successfully caught by the dynamic 500 page. If you
> visit the "/greet/:name" path, it will escape the dynamic 500 page because
> of the exception raised in the application layout. The conditional in the
> layout is contrived, but is intended to represent complex logic that can
> trigger an exception in the layout when rendering some actions but not
> others.
>
> I see in the edge guides that there's also a way to get this functionality
> by creating a route for "/500". I'm not sure if this would be similarly
> affected if an exception was raised by a layout, but it's something to
> consider as well, and perhaps someone who is more familiar with that
> feature can chime in :)
>
> Let me know if I should open this up on GitHub as an issue, or if docrails
> needs to be updated to reflect that some exceptions can escape.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-core+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-core@googlegroups.com.
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
At.
Carlos Antonio

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to