我很喜歡Rails。創建Rails應用程序的自動腳本
我想創建一個Rails支持的網站,當用戶創建一個帳戶(創建應用程序,設置用戶的喜好,配置數據庫等)時,它可以自動安裝Rails應用程序(Redmine)。每個Rails應用程序將使用它自己的子域名。
任何想法如何做到這一點?
我很喜歡Rails。創建Rails應用程序的自動腳本
我想創建一個Rails支持的網站,當用戶創建一個帳戶(創建應用程序,設置用戶的喜好,配置數據庫等)時,它可以自動安裝Rails應用程序(Redmine)。每個Rails應用程序將使用它自己的子域名。
任何想法如何做到這一點?
你可能想要考慮使用redmine和像subdomain_fu這樣的插件來爲每個用戶創建子域,而不是在你的服務器上有100個rails應用。你會用完ram。也許我正在讀錯你的問題。如果我是我的道歉。
您可以添加將子域映射到數據庫連接的模型(例如帳戶)。當有請求進入時,然後根據子域即時切換數據庫連接。你甚至可以添加一個視圖路徑,這樣每個子域可以有它自己的外觀和感覺。
例如在應用程序控制器的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
查找到軌模板 - 這是一個內置的功能,讓你指定的應用程序創建的模板。你可以得到真正的粒度 - 我的創建引導用戶和內容。 Here's some examples和Here's mine ......我認爲這是最新的。
您可以使用您的應用程序生成模板,爲用戶自定義,然後從中生成他們的應用程序。
當您運行rails
命令你指定一個模板:rails appname -m templatefile.rb
不,你是對的。只要其他用戶看不到其他項目,這是一個很好的解決方案。 – 2009-08-14 20:36:08
並幫助他們不看其他項目,你只需在應用程序控制器中寫一個authorized_user方法,或者redmine已經有了。子域名,更好的方法:-) – pjammer 2009-08-15 01:34:16