2011-08-01 1 views
2

저는 Sinatra와 Datamapper를 사용하여 데이터베이스를 공유하는 견고한 웹 앱을 만드는 좋은 방법을 생각하려고합니다. 나는 하나의 앱만 사용하기 시작했는데, admin aspect를 config.ru 파일에 다른 매핑을 가진 자신의 앱으로 분할하는 것에 대해 생각하고있다.두 개의 Sinatra Apps, 공유 datamapper DB

그래서 config.ru는 루트 루트를 기본 앱에 매핑하고 '/ admin'은 관리 앱에 매핑합니다. 기본 앱은 db의 데이터를 모든 사용자에게 보여줄 책임이 있으며 Admin 앱은 관리자가 db에 콘텐츠를 추가 할 책임이 있습니다. 내 뒤에 추론이 내게 더 많은 유연성과 재사용을 허용하는 것입니다 관리 애플 리케이션.

주 앱에는 내 모델을 정의하는 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