我有几个Rails项目有一些共同的代码库.公共代码由一些ActiveRecord模型和一个api组成.目前我正在复制所有项目中的公共代码,这是一种非常糟糕的做法.现在我想将公共代码移动到
Ruby Gem.我是
Ruby on Rails的新手.我看过
several Gem
tutorials,但找不到任何有用的东西可以帮助我用可重复使用的ActiveRecord模型创建一个宝石.
基本上我想要的是 –
> Gem包含一些常见的活动记录模型.
> Gem包含一些在这些模型上提供api的代码
>这个gem将被几个Rails项目使用,它们将初始化数据库等.
请告诉我这种情况的最佳做法是什么.
解决方法
我记得我的电子商务项目遇到了同样的问题,后来我把它移到了单独的存储库中.只需将整个重复代码移动到rails引擎即可.
您可以使用以下几种指南:
> http://edgeguides.rubyonrails.org/engines.html
> http://coding.smashingmagazine.com/2011/06/23/a-guide-to-starting-your-own-rails-engine-gem/
> http://railscasts.com/episodes/277-mountable-engines
您可以创建生成器来安装模型的迁移文件.因此,每当您将rails引擎安装到任何rails应用程序并运行生成器时.只需几个命令即可启动并运行:rake db:migrate等.
P.S.:这是我创建的引擎存储库的链接 – https://github.com/suryart/spree_active_sale,也许代码可以帮助您作为参考.