svn: внешние или git-подмодули - определенно способ пойти в такой ситуации.
Конечно, вы захотите иметь возможность протестировать их в обоих приложениях, поэтому вы должны также поделиться своими модельными тестами или спецификациями. Но помните, что модели часто зависят от плагинов, поэтому вы также захотите открыть общий доступ к своей папке плагинов. И вам, вероятно, нужны одни и те же драгоценные камни и одна и та же версия Rails, поэтому вам лучше всего поделиться со всеми поставщиками. Да, и иногда ваш код в lib изменяет ваши модели, поэтому вы захотите поделиться этим. Да, и обязательно предоставьте доступ к любой пользовательской конфигурации в файлах среды.
И вы захотите настроить сервер непрерывной интеграции для запуска вашего набора тестов в обоих приложениях на случай, если изменения уровня модели в вашем основном приложении нарушат работу вашего другого приложения.
Но я имею в виду, что после того, как все это проработано, svn: externals или git submodules - определенно путь для такой ситуации.
Обновление (несколько лет спустя)
Rails Engines - вероятно, лучшая ставка в настоящее время для надежного разделения кода модели между несколькими приложениями. Они могут быть выделены и включены в Gemfile
каждого приложения.