2011-08-01 36 views
2

我在想一個使用Sinatra和Datamapper創建一個共享數據庫的可靠Web應用程序的好方法。我開始只使用一個應用程序,但我正在考慮將管理方面分割爲它自己的應用程序,並在config.ru文件中使用不同的映射。兩個Sinatra應用程序,共享數據映射器DB

因此,config.ru會將根路線映射到主應用程序,'/ admin'映射到管理應用程序。主應用程序將負責顯示數據庫中的數據給任何用戶,並且管理員應用程序負責允許管理員向數據庫添加內容。我背後的推理是讓我更具靈活性和管理應用程序的可重用性。

主應用程序有Datamapper類負責定義我的模型,但我確信我可以將它移動到管理應用程序沒有問題。有沒有辦法將它移動到它自己獨立的.rb文件中?

很明顯這個平臺是新手,但我很喜歡它。任何幫助是極大的讚賞。

回答

2

只要你喜歡,你可以有一個項目與儘可能多的sinatra應用程序。爲你的項目,你可以將它設置這樣的:

# site.rb 
require 'config/boot' 
class Site < Sinatra::Base 
    ... 
end 

# admin.rb 
require 'config/boot' 
class Admin < Sinatra::Base 
    ... 
end 

# config/boot.rb 
require 'model/user.rb' 
require 'model/post.rb' 

# config.ru 
require 'admin' 
require 'site' 
run Rack::URLMap.new("/" => Site.new, "/admin" => Admin.new) 

的關鍵是把應用程序都在同一個項目/版本控制。

+0

沒有機會沿着這些路線扔東西,但它是有道理的。非常感謝你!你能解釋一下「運行Rack :: URLMap.new ...」這一行嗎?我還沒有見過像這樣的config.ru ... – YuKagi

相關問題