我有一组模型,我需要在几个rails/sinatra/等应用程序之间共享。我还没有见过这样的东西,我很好奇用DRY的方式来解决这个问题最有效的方法是什么?我可以为模型指定一个中心区域吗?我可以创建一个只带来我需要的模型的gem吗?其他人是怎么看待这个问题的?我在考虑做一个小的宝石或一些我还不知道如何处理这个。
我正在使用Datamapper,但这也是构建多个rails/非rails ruby应用程序的更一般的问题。
您可能会发现在存储库中拥有包含模型和相关单元测试的子模块比创建一个成熟的gem更容易。这样,你就可以从一个应用程序到另一个应用程序进行补丁,而不必从上到下驱动所有内容。
你可以为你想在其他应用程序中使用的模型创建公共API。
在rails中,你应该已经有了REST控制器,所以你可以在其他应用中使用ActiveResource。
你可以把你的ActiveResource类打包到gem中,以简化事情并保持DRY。
您可以查看:http://api.rubyonrails.org/classes/ActiveResource/Base.html查看一些示例。
不管你用的是ActiveRecord还是DataMapper