In short, something big changed in how views are rendered and stored in Rails 3, and changes were needed.

Here's what happened:

SharedLayouts used to watch for @content_for_[whatever] instance variables during rendering in order to build up page parts to be properly rendered by Trusty layouts. So, for instance, if you called trusty_layout and rendered something in your controller, it would end up being rendered in @content_for_layout, which would extracted by Shared Layouts and passed into a Page's page part to be displayed.

The problem was that these instance variables were no longer being set.

In Rails 3, though, there's a @view_flow variable provided by ActionView::Context that provides the same information in a slightly different way. @view_flow has a content property, in which is stored a hash. So, instead of @content_for_layout, you get @view_flow.content[:layout].

Reworked how everything is extracted to follow this new method and everything seems to be working.