我正在使用Ruby on Rails 3,我计划创建一个"可扩展"的应用程序。也就是说,要有一个主应用程序,我可以在其中添加("非侵入性")插件,而无需修改主应用程序。这些插件必须按照主应用程序的数据库代码结构与主应用程序交互。
我如何在设计和规划应用程序数据库结构(主外键,…)和思考应用程序代码实现时处理这个问题?
我可以向您推荐Rails::Engine。一个很好的例子是Refinery CMS或Spree项目。
您可以在引擎中编写迁移,并将它们复制到应用程序db/migrate中,例如