Разработка и планирование «расширяемого плагином» приложения

#ruby-on-rails #ruby #database #ruby-on-rails-3 #plugins

#ruby-on-rails #ruby #База данных #ruby-on-rails-3 #Плагины

Вопрос:

Я использую Ruby on Rails 3 и планирую создать «расширяемое» приложение. То есть иметь основное приложение для , в которое я могу добавлять («неинвазивные») плагины, вообще не изменяя основное приложение. Эти плагины должны взаимодействовать с основным приложением в соответствии с его структурой базы данных кода.

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

Ответ №1:

Я могу порекомендовать вам Rails::Engine. Хорошим примером этого являются проекты Refinery CMS или Spree.

Вы можете написать миграции в движке и скопировать их в базу данных приложения / выполнить миграцию с помощью генератора, например.