2013-08-08 1 views
9

Я создаю JSON-only application, это в основном более компактный Rails с меньшим количеством промежуточного программного обеспечения и меньшим количеством модулей. Это приложение, созданное в Rails 4.Как сохранить DRY с ActiveAdmin или RailsAdmin, отдельно от основного приложения

Я хочу разработать простое приложение, которое может администрировать данные в базе данных для основного приложения. Для этого я хотел бы использовать Active Admin или Rails Admin. Но оба варианта каким-то образом используют базовые модели и их валидации, требования и т. Д., Чтобы строить сверху.

Это означает, что мне нужно поделиться хотя бы моделями между основным приложением и приложением RailsAdmin.

Как бы я лучше всего это сделал? Есть ли хорошее руководство по созданию приложения администрирования в отдельном приложении с рельсами рядом с вашим основным, вместо того, чтобы интегрировать его?

В качестве побочного примечания: еще одна веская причина держать администратора в отдельном приложении из основного приложения, но в общей базе данных - это множество зависимостей, к которому относится драгоценный камень, такой как ActiveAdmin.

Также обратите внимание, что я не просто заинтересован в запуске администратора на другом домене или на другом сервере, но в основном для того, чтобы основное приложение было ориентировано и сосредоточено. И чтобы сохранить зависимости, с которыми что-то вроде ActiveAdmin приходит, из моего основного приложения.


сноски:

  • Ни ActiveAdmin, ни RailsAdmin проблема для исполнения в себе. Это то, что им требуется промежуточное ПО, тогда как JSON-only Rail-приложение нуждается только в очень немногих модулях, помощниках и промежуточном программном обеспечении! Rails-API предлагает такой тонкий стек. Производительность не связана с администратором, а не с администратором, а с Full-Rails vs Rails-API.
  • Производительность не моя главная проблема, зависимости и раздувание! У меня теперь есть приложение Rails, которое настолько тонкое, сфокусированное и тощее, что оно может измерять себя с помощью большинства приложений Sinatra :). Имея только три дополнительных драгоценных камня (каждый с несколькими зависимыми от них) и очень тонкий стек промежуточного ПО, я могу легко обновлять, управлять и отлаживать.

Более практичным: Я не имеют Завещание (Это JSON-API, так что маркер с проверкой подлинности), не есть мнение или шаблонный движок. Нет формы, нет скрепки, Rmagic, Kminari (пейджеры) и т. Д. И т. Д. Все это будет добавлено в мое приложение, когда я выйду «просто администратором».

+2

Я бы изучил извлечение классов моделей в драгоценный камень, который может потребоваться в обоих приложениях. Боюсь, я не могу предложить конкретные советы, поскольку я никогда на самом деле этого не делал, но теоретически это должно сработать. Вам нужно будет предоставить общий доступ к базе данных.yml, или просто убедитесь, что он остается актуальным в обоих местах. –

+0

Спасибо за подсказку. Это, действительно, звучит как очень хорошее решение для меня. – berkes

ответ

1

Вы оценили влияние добавления таких инструментов, как ActiveAdmin, на скорость вашего API для отдыха? если нет, это звучит как случай преждевременной оптимизации для меня.

в случае, если скорость API действительно влияет на библиотеку, которая загружена, но не используется, тогда вы можете создавать несколько приложений и совместно использовать модели в подмодуле git.

+0

Да, я сделал, хотя и грубый и очень ненаучный :). Добавление полного набора рельсов почти удваивает объем используемой памяти. Он Quadruples startuptime (в основном не имеет отношения к производству), и он делает (несколько) ответов в три раза медленнее. Но, как я уже сказал, наличие всех зависимостей в этом случае больше связано с проблемой. У меня было несколько приложений, ломающихся на обновления из-за несовместимости с, например. версия jQuery, которой требуется ActiveAdmin, или загрузчик, которому нужен RailsAdmin. – berkes

+0

Я нахожу это довольно интересным, что у вас медленные ответы в процессе производства при использовании администратора. вы посмотрели, откуда это взялось? но, как я уже писал, и Зак указал также, просто поделитесь своими моделями с помощью подмодуля git или драгоценного камня. Это очень полезно. – phoet

+0

phoet и другие: я добавил несколько сносок, чтобы сделать мои замечания о производительности немного яснее. – berkes

Смежные вопросы