Rails, DataMapper & JSON проблема - PullRequest
3 голосов
/ 08 мая 2011

У меня возникли проблемы с очень простой настройкой Rails с использованием DataMapper. Это моя модель:

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.all

... я получаю

[#<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? Большое спасибо заранее ;-) Крис.

1 Ответ

1 голос
/ 09 мая 2011

Ответ на первый вопрос: not loaded означает, что загрузка данных откладывается до момента фактической необходимости, поскольку свойство Text по умолчанию лениво. http://datamapper.org/articles/spotlight_on_laziness.html

...