【问题标题】:Use DataMapper instead of ActiveRecord [closed]使用 DataMapper 而不是 ActiveRecord [关闭]
【发布时间】:2011-07-18 02:30:32
【问题描述】:

DataMapper 的想法是definitely better 而不是 ActiveRecord。它有一个用于各种数据存储的 API,包括 RDBMS 和 NoSQL 存储。 DataMapper 比 ActiveRecord 更智能。它具有“战略热切加载”。这个特性单枪匹马地消灭了“N+1 Query Problem”。此外,它允许延迟加载重字段,如 Text 属性。 DataMapper 允许您通过提供嵌套的条件散列来创建和搜索任何复杂的对象图。 ActiveRecods 不适合用于生产中的关联。 include 方法丑陋且不可配置。 2010 年 10 月,Josh Symonds 创建了一个patch for this method 以允许从急切加载中排除字段。但是这条路径被忽略了,今天在 rails3 我们有同样丑陋的包含方法。

即使在具有出色 AREL 的 Rails3 中,ActiveRecord 也远非 Rails 的最佳形式。您可能会说“哇,新的 gem metawhere 允许编写像 Article.where(:title.matches => 'Hello%', :created_at.gt => 3.days.ago) 这样的好代码”。但是等等……DataMapper 开箱即用地支持这个!也许不是将 ActiveRecord 修改为看起来像 DataMapper 更好,而是扩展和支持更好的 orm?有关 DataMapper 的更多详细信息,请访问 http://datamapper.org/

我认为,以后版本中的 rails 应该允许我们选择要使用的 orm,就像现在它允许选择数据库一样。即使它只有一个选项“ActiveRecord”,人们也会寻找可用的替代品。刚开始学rails的时候,以为只有ActiveRecord支持。后来我什至没有尝试寻找其他东西。

我为什么要写这些东西?我认为,我们需要更多地关注这个不错的 ORM。如果您是某个流行或不那么流行的 gem 的开发者,请考虑添加对 DataMapper 的支持。 DataMapper 社区应该编写一些来自 ActiveRecord 或其他 ORM 的迁移指南,并保持文档更新,您可能会帮助他们。至于我,DataMapper 社区需要更多的人,你可能就是其中之一。 此 ORM 的唯一缺点是缺少文档,您可以提供帮助。

那你怎么看?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 orm activerecord datamapper


    【解决方案1】:

    Rails 3 允许您使用 Datamapper,只是默认情况下不允许使用。如果您确实想将 datamapper 与 rails 3 一起使用。就这样做

    rails new project_name -m http://datamapper.org/templates/rails.rb

    Rails 允许您进行选择,您甚至可以使用 --skip-active-record 选项。 :)(可能并不简单,但它就在那里。

    是的,Datamapper 很棒。 :)

    【讨论】:

    • 我知道并使用它。但这并不是应该的那么清楚(在 rails 帮助你找不到那个。只有“skip-active-record”)
    【解决方案2】:

    缺乏文档是一个大问题。我已经开始使用 DataMapper 建立数据库,并决定为我的数据实现一个 Web 界面。作为初学者,将 DM 整合到 Rails 中是一个巨大的挑战。因此,我很好奇,您知道任何显示 DM/Rails 使用情况的资源吗?当我不确定如何继续时,我希望能够看到一些东西。

    【讨论】:

    • 我自己是沿着这条路走的,同时完全放弃了DM。DM邮件列表上几乎没有流量,而且回复也很慢。 AR 似乎不像 DM 那样简单,但我认为如果你真的想用你的应用程序投入生产,AR 绝对没有办法。围绕 AR 的生态系统(例如仅依赖于它的大量宝石)是坚持使用 AR 的理由。
    猜你喜欢
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多