Need suggestion on best gems for Versioning and Extending a model

Hi All,

We are starting a new project which will have lots of forms. Each form
will
represent a single table, but will have many associations to other
models.

This form’s fields can be extended on the fly. Versions needs to tracked
for the models and any point of time the version can be reverted back.

Is there any proper gems available for this ? I was thinking to use
acts_as_versioned. But I need the models to be extended.

And more complex thing is that we need a way to filter / sort based on
that
extended field.

Thanks in advance.

With Best Regards,
Senthil