"Build a microservice and expose an API." That would be the quick answer if you ask any developer how to share business logic between applications. Although it makes sense in many number of situations, it's not a good answer all the time. My TL;DR for some situations is that you can organize your models logic as ActiveSupport::Concerns (or plain Ruby Modules if you will) and move them out to a Rub