Ruby 某些数据在rails控制台中显示为“未加载”

Ruby 某些数据在rails控制台中显示为“未加载”,ruby,ruby-on-rails-3,ruby-datamapper,Ruby,Ruby On Rails 3,Ruby Datamapper,我有一个rails 3应用程序,我对rails还相当陌生。我有一个地址模型。 提交表单后,地址将成功保存。 在地址模型中,有一个字段,如下所示: property :street_address, Text, :required => true 在rails控制台中,当我键入: 1.9.3p194 :062 > add = Address.get(208) => #<Address @id=208 @street_address=<**not loaded**

我有一个rails 3应用程序,我对rails还相当陌生。我有一个地址模型。 提交表单后,地址将成功保存。 在地址模型中,有一个字段,如下所示:

property :street_address, Text, :required => true
在rails控制台中,当我键入:

1.9.3p194 :062 > add  = Address.get(208)
 => #<Address @id=208 @street_address=<**not loaded**> @postal_code="400123" @latitude=0.0            @longitude=0.0 @sub_area="subarea1" @city_id=1 @state_id=16 @country_id=1 @area_id=nil> 
1.9.3p194 :063 > add.street_address
 => "STREET" 

为什么不显示街道地址的加载?在另一个模型中,文本数据类型的字段也会发生同样的情况。

使用DataMapper,某些属性(例如文本类型的属性)在默认情况下是延迟加载的,也就是说,在代码访问它们之前,不会从数据库中提取它们

您可以通过向模型定义中的属性添加:lazy=>false来覆盖此行为


有关更多详细信息,请参阅。那里有一个标题为Lazy Loading的部分。

DataMapper Lazy加载一些数据类型以加快数据库查询。这意味着包含大量数据(如文本属性)的字段在需要时才会加载

默认情况下,文本字段是延迟加载的,如果需要,您可以跳过它

property :street_address, Text, :required => true, :lazy => false

另外,我使用Datamapper作为ORM。