Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails对企业友好吗?ActiveRecord似乎很自私_Ruby On Rails_Ruby_Rails Activerecord_Sequel - Fatal编程技术网

Ruby on rails Rails对企业友好吗?ActiveRecord似乎很自私

Ruby on rails Rails对企业友好吗?ActiveRecord似乎很自私,ruby-on-rails,ruby,rails-activerecord,sequel,Ruby On Rails,Ruby,Rails Activerecord,Sequel,从今年夏天开始,我一直在学习Rails,并用它编写了一些成功的独立应用程序,我真的开始欣赏Rails的一切 然而,我目前的项目是将Rails作为数据库的前端来编写,该数据库将用于其他事情(web服务、数据仓库、其他连接的应用程序)——我意识到ActiveRecord,以及大部分围绕AR开发的Rails,在这种方法上似乎是单向的 注意:我指的不是遗留数据库,即我们必须插入的数据库,而是“回到过去”设计的数据库 Rails似乎认为它是并且应该是处理这些数据的唯一应用程序。我越来越注意到,当涉及到复合

从今年夏天开始,我一直在学习Rails,并用它编写了一些成功的独立应用程序,我真的开始欣赏Rails的一切

然而,我目前的项目是将Rails作为数据库的前端来编写,该数据库将用于其他事情(web服务、数据仓库、其他连接的应用程序)——我意识到ActiveRecord,以及大部分围绕AR开发的Rails,在这种方法上似乎是单向的

注意:我指的不是遗留数据库,即我们必须插入的数据库,而是“回到过去”设计的数据库

Rails似乎认为它是并且应该是处理这些数据的唯一应用程序。我越来越注意到,当涉及到复合主键(这是您不能仅仅调整的东西,如表命名和列命名)时,它会越来越多

虽然我知道有一个复合键gem,但我觉得我正在开发一个完整的MVC应用程序,它依赖于这个单一的gem。我担心我会遇到越来越多这样的事情。我已经研究了替代ORM,但是似乎许多gem依赖于ActiveRecord

我想我对ActiveRecord这种明显自私的角度感到有点惊讶和悲伤


有人对Rails如何与企业级数据库协同工作有任何反馈或成功经验吗?

Rails主要是作为一个“固执己见”的web开发框架构建的

它的构建初衷是实现全堆栈web应用程序,整个系统是按照“Rails方式”构建的,这是Rails提交者为保持系统简单和标准而做出的许多决策的结果。当您遵守约定时,需要做出的配置决策数量非常少

这些约定包括以某种方式设置数据库。主键为自动递增且命名为“id”,外键为“foreigntable_id”。ActiveRecord是内置的,几乎总是假定要使用它(即使它不是)

所有这些都不意味着偏离标准堆栈将不起作用。续集和数据映射器工作得很好。您可以(几乎)根据需要为表列命名。如果你的应用程序能够完成它应该做的事情;这是最重要的

是的,因为您使用了Datamapper,现在您的应用程序依赖于Datamapper。这怎么会是坏事

请理解,因为ActiveRecord是默认的,所以许多其他gem都是在ActiveRecord上构建的,所以它们可能无法使用Datamapper。这不是Datamapper(或Rails)的错

这里真正的问题是“Rails,即使在使用替代ORM或复合键gem时,是否仍然比X更合适、更高效?”


我认为是的。那么,我必须在每个类中设置
self.table\u name=
self.primary\u key=
?那么,如果我不得不放弃一些只适用于ActiveRecord的宝石呢?如果你必须考虑数据库触发器和视图,那该怎么办呢?我处理所有这些事情,与我使用过的其他东西相比,Rails仍然是一种工作乐趣。

我感谢您的反馈。作为Rails世界的新手,我只是害怕替换似乎是核心元素的东西(ActiveRecord)——或者使用可能更新或不更新的gem?你个人觉得在数据库构建于rails之外的情况下,替换ORM是更好的选择吗?@JasonB我一直都在使用ActiveRecord,但我不久前查看了Datamapper,可以看到它在非常传统的ish db方面对你有何帮助。我想这是我的问题所在,因为这个数据库不会是遗留的。它是全新的,是沿着rails应用程序设计的,但它必须独立运行,这样其他系统才能连接到它。我在让复合_键gem正常工作时遇到了问题,这就是我问的原因。