ruby-on-rails – 使用DataMapper而不是ActiveRecord
DataMapper的想法是
definitely better而不是ActiveRecord.它有一个用于各种数据存储的API,包括RDBMS和NoSQL存储.
DataMapper比ActiveRecord更智能.它具有“战略急切加载”.此功能可以单手消除“N 1查询问题”.另外,它允许延迟加载像Text属性这样的重字段. DataMapper允许您通过提供条件的嵌套哈希来创建和搜索任何复杂的对象图. ActiveRecods不适合用于生产中的关联. include方法很丑陋且不可配置. 2010年10月,乔希·西蒙兹(Josh Symonds)制作了一个 patch for this method,允许将字段排除在急切加载之外.但是这条路被忽略了,今天在rails3中我们有同样丑陋的包含方法. 即使在具有出色AREL的Rails3中,ActiveRecord也远不是最好的轨道.你可能会说“哇,新宝石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.如果您是一些流行或不那么受欢迎的宝石的开发者,请考虑添加对DataMapper的支持. DataMapper社区应该从ActiveRecord或其他ORM编写一些迁移指南,并保持文档的最新状态,您可以帮助他们.至于我,DataMapper社区需要更多人,你可能就是其中之一. 那你觉得怎么样? 解决方法
Rails 3允许您使用Datamapper,而不是默认情况下.你确实想使用带有rails 3的datamapper.只需这样做
rails new project_name -m http://datamapper.org/templates/rails.rb Rails允许您选择,甚至可以使用–skip-active-record选项. :)(可能不是直截了当但它的存在. 是的,Datamapper太棒了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |