2011-08-01 10 views
2

SinatraとDatamapperを使用してデータベースを共有する堅実なWebアプリケーションを作成する良い方法を考えようとしています。私はただ1つのアプリを使い始めましたが、私はadminのアスペクトをconfig.ruファイルの別のマッピングを持つ自分のアプリに分割することを考えています。2つのSinatra Apps、共有データサーバーDB

したがって、config.ruはルートルートをメインアプリにマッピングし、 '/ admin'は管理アプリケーションにマッピングします。メインアプリケーションはdbから任意のユーザーにデータを表示する役割を担い、Adminアプリケーションは管理者がコンテンツをdbに追加することを許可します。この背後にある私の推論は、管理アプリケーションでより柔軟で再利用可能にすることです。

メインアプリケーションには、私のモデルの定義を担当するDatamapperクラスがありますが、問題なく管理アプリケーションに移動できると確信しています。それを独自の.rbファイルに移動する方法/理由はありますか?

明らかにこのプラットフォームには新しいですが、私はそれを愛しています。どんな助けでも大歓迎です。

答えて

2

あなたは好きなだけ多くのsinatraアプリケーションで1つのプロジェクトを持つことができます。あなたのプロジェクトでは、次のように設定することができます:

# 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

関連する問題