3

我在使用 DataMapper 进行非常简单的 Rails 设置时遇到了一些麻烦。这是我的模型:

class Capture
  include DataMapper::Resource
  property :id, Serial
  property :identifier, String
  property :caption, Text
 end

现在我通过以下方式在 Rails 控制台中添加一个新的捕获:

Capture.create(:identifier => '12345', :caption => 'Foo bar foo')

如果我尝试通过

全部捕获

...我得到一个

[#<Capture @id=1 @identifier="12345" @caption=<not loaded>>]

第一个问题:在这种情况下,“未加载”是什么意思?但我遇到的问题是我无法将结果转换为 JSON:

Capture.all.to_json

NoMethodError: undefined method `encode_json' for #<Capture @id=1 @identifier="12345" @caption=<not loaded>>

是DM的问题吗?如何将这样的结果封装成 JSON?非常感谢 ;-) 克里斯。

4

1 回答 1

1

第一个问题的答案:not loaded意味着数据加载会延迟到实际需要,因为默认情况下 Text 属性是惰性的。http://datamapper.org/articles/spotlight_on_laziness.html

于 2011-05-09T07:52:49.457 回答