【发布时间】:2011-11-02 17:59:45
【问题描述】:
我正在开展一个项目,该项目涉及聚合来自各种来源的数据,以便用户可以从单个前端界面搜索和挖掘数据。该项目非常干净地分为两个部分:
- cron 触发的 (Whenever gem) 代码从各种来源提取数据并填充数据库。
- 消费数据并将其呈现给用户的前端代码。
我想将代码库拆分为具有共享模型的单独项目,以鼓励清晰地分离关注点,但我不确定如何在 Rails 3 中最好地实现这一点。
我看到了这个关于在 SVN 或 Git 中使用共享文件夹/子模块的问题,但这对我来说似乎不是很干净: Sharing Models between two Rails Projects - using git submodules?
我来自 Java/MVN 背景,如果您只需创建 3 个模块(一个共享模块,两个依赖它)就可以了。然后使用 Maven,您可以在父项目上调用构建,它会自动更新每个依赖项目中的共享代码 JAR。
是否可以使用 Rails 引擎、Rake 和 RubyGems 实现相同的目标?还是有更好的“rails 方式”来做到这一点?
谢谢,
-詹姆斯
【问题讨论】:
-
这个问题有两部分我需要指导。第 1 部分是如何最好地将模型代码从 2 个依赖应用程序中分割成一个共享 Gem;第 2 部分是如何使用 Rake/Rubygems 在共享代码更改时使用最新的 Shared Gem 更新依赖项目(Java 世界中的 Maven)。
标签: ruby-on-rails-3 rubygems rake shared-libraries rails-engines