2009-08-14 4 views
1

Я ноб с Rails.Автоматический сценарий для создания приложений Rails

Я хотел бы создать веб-сайт Rails, который может автоматически установить приложение Rails (Redmine), когда пользователь создает учетную запись (создайте приложение, настройте настройки пользователя, настройте базу данных и т. Д.). Каждое приложение Rails будет использовать его собственный субдомен.

Любая идея, как это сделать?

ответ

1

Возможно, вам понадобится использовать redmine и плагин, такой как subdomain_fu, который будет создавать субдомены для каждого пользователя, а не на 100-й основе приложений на вашем сервере. у вас кончится баран. Возможно, я читаю ваш вопрос неправильно. если я извиняюсь.

+0

Нет, вы правы. Пока каждый другой пользователь не видит других проектов, это хорошее решение. –

+0

и чтобы помочь им НЕ видеть другие проекты, вы просто пишете метод authorized_user в контроллере приложения или, может быть, redmine уже есть. субдомены, лучший способ :-) – pjammer

0

Вы можете добавить модель (например, учетная запись), которая отображает поддомены в соединениях с базой данных. Когда приходит запрос, вы переключаете соединение с базой данных «на лету» на основе поддомена. Вы даже можете добавить путь к представлению, чтобы каждый поддомен мог иметь собственный внешний вид.

Например, в before_filter для контроллера приложения:

@account ||= Account.find_by_domain(request.host) 
render :text => "#{request.host} can not be found" and return false if @account.nil? 
ActiveRecord::Base.establish_connection(@account.database_connection) 
self.prepend_view_path @account.view_path 
0

Посмотрите в шаблоны рельсам - это встроенная функция, которая позволяет задать шаблон для создания приложений. Вы можете получить действительно гранулированный с ними - мой создает загруженных пользователей и контент. Here's some examples, и Here's mine ... Я думаю, что это актуально.

Вы можете использовать свое приложение для создания шаблона, настроенного только для пользователя, а затем сгенерировать их приложение.

Вы задаете шаблон при запуске rails команду: rails appname -m templatefile.rb

Смежные вопросы