ruby-on-rails - 使用 Rails 进行模块化开发

标签 ruby-on-rails ruby modularity

我正在开发一个多服务器 Web 应用程序,我想知道 ruby​​/rails 中关于模块化的最佳实践是什么。

基本上,我正在寻找将我的 ActiveRecord 模型从 Rails 应用程序共享到我的后台工作程序应用程序(2 个不同的 heroku 实例)的最佳方式。

1) 为 Rails 应用程序和后台工作程序共享相同的代码。我们现在有一个可以做所有事情的大应用程序。 (优点:它解决了代码共享问题,缺点:它使应用程序臃肿)
2) 将 ActiveRecord 模型捆绑在一个 gem 中,并在两个应用程序中都需要它(优点:最好的模块化,缺点:启动开发并不容易)
3) 在两个代码库中复制事件记录模型(缺点:代码重复,更新数据库时会导致错误)

现在,我拥有 .Net 背景。通常我会把我的模型放在一个 dll 中,这样可以解决共享代码的问题,但我不确定这里的“ruby 方式”是什么。

是否应该在某个地方寻找有关 ruby​​ 方式的架构最佳实践?

最佳答案

选项 1。它可能会让人觉得臃肿,但 Rails 在保持 DRY 时效果最好。您可能会惊讶地发现它并没有像您想象的那样真正变得臃肿。

分离出一个 gem 是可行的,但应该限制在框架或实用程序代码中。如果您想让 Rails(和您自己)满意,则应将业务逻辑保留在应用程序中。

关于ruby-on-rails - 使用 Rails 进行模块化开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826726/

相关文章:

ruby-on-rails - 删除 rails 中的模型( "rails g model Title..."的反面)

ruby-on-rails - 如何用不同的用户运行nginx主进程

ruby-on-rails - 计数器缓存和 will_paginate

function - 何时将代码拆分为函数的黄金法则是什么?

c - 在 C 头文件中隐藏实现和辅助函数

ruby-on-rails - Rails 3的示例应用程序?

javascript - 星级评定系统仅更新列表中的第一项

iOS 邮件应用程序显示空白邮件正文

ruby-on-rails - 具有Elastic gem的带有胎面 gem 的嵌入式文档的索引字段?

Clojure 模块依赖项