Создание рамки расширения для приложения Rails

Я начинаю исследование того, что мне нужно, чтобы создать плагиновую систему уровня пользователя (например, плагины Wordpress) для приложения Rails, поэтому я бы оценил некоторые общие рекомендации/рекомендации. По плану пользовательского уровня я имею в виду пакет, который пользователь может извлечь в папку, и отобразить его на интерфейсе администратора, позволяя им добавить дополнительную конфигурацию и затем активировать ее.

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

Плагин должен был бы иметь возможность:

  • выполнить собственные миграции (this? недокументировано)
  • имеют доступ к моим моделям (плагины уже работают)
  • есть точки входа для добавления контента в представления (может быть сделано с content_for и yield)
  • заменить целые представления или частичные (как?)
  • предоставить свои собственные представления администратора и пользователя (как?)
  • создать свои собственные маршруты (или, может быть, просто объявить о своем присутствии и позволить мне создавать маршруты для него, чтобы плагины не наступали друг на друга)

Что-нибудь еще мне не хватает?

Кроме того, существует ли способ ограничить, какие таблицы/действия имеет доступ к плагинам, связанным с миграциями и моделями, а также ограничить их доступ к маршрутам (возможно, включить их, но не удалять маршруты)?

P.S.: Я постараюсь сохранить этот обновленный, компилирующий материал, который я выясню, и соответствующие ответы, чтобы иметь своего рода руководство для других.

Ответ 1

Возможно, вы захотите проверить mephisto, это программное обеспечение для ведения блога, построенное с рубинами на рельсах и имеющее дополнительную поддержку плагина. Не уверен, работает ли он так, как вы думаете, но может дать вам хорошую информацию. Источник можно найти на GitHub.

Ответ 2

Вы должны посмотреть на deface gem. Он позволяет настраивать виды рельсов, добавлять контент через крючки и заменять целые представления/частичные. Spree использует этот драгоценный камень, чтобы вы могли смотреть также на spree. Кроме того, у них также есть другие решения для настройки приложения, чтобы вы могли найти ответы на свои вопросы.