Я начинаю исследование того, что мне нужно, чтобы создать плагиновую систему уровня пользователя (например, плагины Wordpress) для приложения Rails, поэтому я бы оценил некоторые общие рекомендации/рекомендации. По плану пользовательского уровня я имею в виду пакет, который пользователь может извлечь в папку, и отобразить его на интерфейсе администратора, позволяя им добавить дополнительную конфигурацию и затем активировать ее.
Каков наилучший способ сделать это? Есть ли другой проект с открытым исходным кодом, который делает это уже? Что Rails уже предлагает для плагинов на уровне программистов, которые можно было бы использовать? Любые плагины Rails, которые могли бы помочь мне в этом?
Плагин должен был бы иметь возможность:
- выполнить собственные миграции (this? недокументировано)
- имеют доступ к моим моделям (плагины уже работают)
- есть точки входа для добавления контента в представления (может быть сделано с content_for и yield)
- заменить целые представления или частичные (как?)
- предоставить свои собственные представления администратора и пользователя (как?)
- создать свои собственные маршруты (или, может быть, просто объявить о своем присутствии и позволить мне создавать маршруты для него, чтобы плагины не наступали друг на друга)
Что-нибудь еще мне не хватает?
Кроме того, существует ли способ ограничить, какие таблицы/действия имеет доступ к плагинам, связанным с миграциями и моделями, а также ограничить их доступ к маршрутам (возможно, включить их, но не удалять маршруты)?
P.S.: Я постараюсь сохранить этот обновленный, компилирующий материал, который я выясню, и соответствующие ответы, чтобы иметь своего рода руководство для других.