Ruby 如何使用DataMapper重新加载实例

Ruby 如何使用DataMapper重新加载实例,ruby,ruby-datamapper,datamapper-1.2,Ruby,Ruby Datamapper,Datamapper 1.2,在多年的AR经验之后,我使用DataMapper作为ORM框架。出于这个原因,我有时会尝试找到一个特定的DM函数来反映AR的一些行为。有时我很幸运,有时我不是。有了#reload指令,我有点不知所措。该方法存在,但不知何故没有达到我预期的效果。基本上,与AR行为不同的是,在AR行为中,实例属性将通过查找DB进行更新,DM以某种方式将实例中的每个属性标记为“未加载” 有人能告诉我使用DM是否可以实现这一点吗?DataMapper将属性标记为未加载,并将在下次访问时加载它们 这是团体支持的结果。DM

在多年的AR经验之后,我使用DataMapper作为ORM框架。出于这个原因,我有时会尝试找到一个特定的DM函数来反映AR的一些行为。有时我很幸运,有时我不是。有了#reload指令,我有点不知所措。该方法存在,但不知何故没有达到我预期的效果。基本上,与AR行为不同的是,在AR行为中,实例属性将通过查找DB进行更新,DM以某种方式将实例中的每个属性标记为“未加载”


有人能告诉我使用DM是否可以实现这一点吗?

DataMapper将属性标记为未加载,并将在下次访问时加载它们

这是团体支持的结果。DM-1将等待查看下一步访问什么属性,以仅加载一组有限的属性

默认情况下,所有属性都在:default组中,因此很可能在点击一个属性后加载所有属性

如果不需要这种懒惰行为,您可以执行以下操作:

resource = YourClass.first(:some => :stuff)
# full non lazy reload (make sure you do not have 
# a reference to old somewhere that causes confusion
resource = resource.model.get(resource.id)