I think the best solution would be to create a engine or gem for the shared classes.
Say you have a user model which has shared functions and application specific functions. I would put the base (shared) functionality into a base engine which is included in the feature engines. In each feature engine I would extend or add functionality to the the user class.
It seems a little like overkill if you are just extending one class, but if you have a set of shared features that other apps build on it would be a good approach to make dry and reusable.