How to use DRY principle in route.rb instead of per controller

I'm asking for thoughts on how to trap valid but not active routes in
route.rb instead of per controller
ie I'm trying to trap the route at the dispatcher level before it
dispatches the request to the specific controller/action method.

Here is the scenario:
A user types in the route in the browser:
eg. http://localhost:3000/events/15
This is a show action on controller events

The controllers are hierarchal as diagramed but the user has not
selected an exhibit:
        user
          >
          --> exhibits
                  >
                  --> events

Thus the event is not active and can be viewed as nil.

My current solution is to use a before_filter per controller. This is
specific to the controller context but duplicates the code per
controller. Part of the problem is the the helper functions of the
controllers are not open to the route.rb. though the instance methods/
variables do get exposed when the dispatcher runs the proc of
determined controller/action.
So how would u be able to get at each controller's instance methods
and implement the DRY code at the dispatcher level before it
dispatches to the found controller/action.

Ideas welcomed.
Thk u
Dave