Два приложения Sinatra, общая база данных Datamapper - PullRequest
2 голосов
/ 02 августа 2011

Я пытаюсь найти хороший способ использования Sinatra и Datamapper для создания надежного веб-приложения, которое совместно использует базу данных. Я начал использовать только одно приложение, но я думаю о разделении аспекта администрирования на его собственное приложение с другим отображением в файле config.ru.

Итак, config.ru сопоставит корневой маршрут с основным приложением, а '/ admin' - с приложением Admin. Основное приложение будет отвечать за отображение данных из базы данных любому пользователю, а приложение Admin - за разрешение администраторам добавлять контент в базу данных. Я рассуждаю об этом, чтобы дать мне больше гибкости и возможности повторного использования с приложением администратора.

Основное приложение имеет классы Datamapper, отвечающие за определение моей модели, хотя я уверен, что смогу перенести это в приложение администратора без проблем. Есть ли способ / причина, чтобы переместить его в свой отдельный файл .rb?

Очевидно, новичок в этой платформе, но мне это нравится. Любая помощь очень ценится.

1 Ответ

2 голосов
/ 02 августа 2011

У вас может быть один проект с таким количеством приложений 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)

Ключ заключается в том, чтобы поместить оба приложения в один проект / контроль версий.

...