Ale*_*nov 5 orm activerecord ruby-on-rails datamapper ruby-on-rails-3
DataMapper的想法绝对比ActiveRecord 更好.它有一个用于各种数据存储的API,包括RDBMS和NoSQL存储.DataMapper比ActiveRecord更智能.它具有"战略急切加载".此功能单手消除"N + 1查询问题".另外,它允许延迟加载像Text属性这样的重字段.DataMapper允许您通过提供条件的嵌套哈希来创建和搜索任何复杂的对象图.ActiveRecods不适合用于生产中的关联.include方法很丑陋且不可配置.2010年10月,Josh Symonds 为此方法制作了一个补丁,允许将字段排除在急切加载之外.但是这条路被忽略了,今天在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社区需要更多人,你可能就是其中之一.这个ORM的唯一缺点是缺少文档,你可以提供帮助.
那你觉得怎么样?
Rails 3 允许您使用 Datamapper,只是默认情况下不允许。如果您确实想将 datamapper 与 Rails 3 一起使用。只需执行此操作
Rails 新项目名称 -m http://datamapper.org/templates/rails.rb
Rails 允许您选择,您甚至可以使用 --skip-active-record 选项。:)(可能并不简单,但它就在那里。
是的,Datamapper 非常棒。:)
| 归档时间: |
|
| 查看次数: |
2854 次 |
| 最近记录: |