Rails 3中的DataMapper与ActiveRecord

Ivo*_*bev 28 activerecord ruby-on-rails datamapper

我很好奇你们对DataMapper的看法,以及它对Rails 3中新的和改进的ActiveRecord带来的好处.

我感谢你的意见.

piy*_*ush 11

我更喜欢DM到AR.我觉得DM实际上是一个ORM,而AR只是SQL的包装.DM make很容易在数据存储之间切换.DM的查询语法更加同质化等.SEL(战略急切加载)也使得DM看起来更像是对象存储而不是AR.

此外,DM类预先定义属性,它使代码更具可读性.来到DM世界之后,我从未错过任何迁移.(即使你真的愿意,也可以拥有它们).使用rails 3,我几乎只使用DM.

  • devise-dm工作得很好.DM也有很多第三方宝石.随着时间的推移,随着DM的成熟,这些问题将逐渐消失. (3认同)

Yur*_*dow 2

我在 Rails 2 中使用 Active Record,在 Merb 和 Rails 3\xe2\x80\x94 中使用 DataMapper,现在我每天都使用 DM/Rails 3。我已经阅读过 AR3,但只在一个小项目(一个内部应用程序)中使用过它。

\n\n

我发现我真正关心的唯一区别是 DM 的策略性急切加载。它很少做人们所希望的事情,无论对与错,它对 FM 所做的事情都是如此。

\n\n

通过AR 中的显式急切加载,毫无疑问应该发生什么:它说它做什么并且(通常)做它所说的。

\n\n

虽然“自动”急切加载听起来不错,但我发现它对我有两个负面结果:

\n\n
    \n
  1. 花费大量时间寻找过度查询的来源
  2. \n
  3. 代码中散布着伪急切加载黑客,其中关系被物化并被丢弃,只是为了以偶尔不“粘住”并且永远不会自我记录的方式来启动它们和身份映射。
  4. \n
\n\n

否则,我发现 AR 和 DM 是相同的野兽,但斑点不同。不像说,续集

\n