Ruby 某些数据在rails控制台中显示为“未加载”
我有一个rails 3应用程序,我对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**
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。