Ответ 1
Вы хотите создать решение для нескольких арендаторов.
Некоторые вещи, которые следует учитывать:
-
Каждый из ваших пользователей должен иметь изолированную базу данных. Это означает, что вам нужно выбрать драйвер базы данных, который может переключать базу данных во время выполнения. Идентификатор базы данных может быть основан на пользовательской части домена.
-
Для регистрации вы можете использовать Devec + cancan. Но вам нужно будет переопределить некоторые контроллеры Devise, чтобы они учитывали базу данных.
-
Вы можете рассмотреть возможность использования сервис-ориентированного дизайна с Ruby и Rails Paul Dix. У этого есть много интересных идей, которые вы можете использовать для создания эффективного сервис-ориентированного приложения, которое, несомненно, является той видной архитектурой, к которой вы должны стремиться создавать.
-
Я предлагаю вам использовать Heroku для размещения вашего приложения. MongoHQ будет очень приятным для баз данных - и у них есть api, чтобы сделать CRUD на базах данных программным путем.
-
И, наконец, не забудьте полностью протестировать ваше приложение. Capybara plus Steak для тестирования интеграции, RSpec для моделей и контроллеров и Jasmine для Javascript.
-
Кроме того, не реализуйте свою собственную платежную систему. Существует множество поставщиков, которые вы можете использовать, например http://recurly.com/.