So, this is after about 5 minutes thought, so bear that in mind.
Working on the premise that metadata is basically a key-value sort of
thing, maybe you could split it out of the application proper, and use
a Rails engine serving it up via a MongoDB implementation. The Rails
app proper could do all the normal sorts of things you have, and the
engine can be used to handle just the metadata parts. The app can
remain metadata agnostic that way, and provide the needed elements
based upon the information it retrieves from the engine.
Going a step further, you could combine more front end intelligence
into the app, say via backbone.js and underscore.js, and use them to
interact with the metadata serving part of your app.