Проблемы с фабричной девушкой to_json

Когда я вызываю to_json для моего объекта Factory Girl, я получаю ошибку nil.[].

Я использую DataMapper на Rails 3, и когда я вызываю to_json для реального объекта DataMapper, он работает просто отлично. Есть идеи, почему объект Factory Girl терпит неудачу?

Factory.define :something do |b|
  b.date_foo { 3.days.ago - 4.hours }
  b.date_bar { 3.days.ago - 4.hours }
  b.somestring '11'
  b.anotherstring 'ASTRINGYAY'
  b.thirdstring 'STRINGG'
  b.fourthstring 'STRING'
  b.otherstring 'thestring'
  b.longerstring 'The string that is longer'
  b.somenumber 3
  b.someothernumber 2
  b.an_id 5593
  b.a_version '1.2.2.2'
  b.a_string '1.2.2.2'
  b.something '1.2.2.2'
  b.code 'SOME CODE'
  b.other_code 'API'
  b.something_id 49
  b.something_version 'OMG'
  b.otherthing 'N/A'
  b.lastthing 'A'
end

Кроме того, я обнаружил следующее:

factory_girl_object.to_json работает нормально.

[factory_girl_object].to_json не работает.

DataMapper, по-видимому, использует объекты DataMapper::Collection вместо массивов, которые обрабатывают to_json немного иначе, чем массивы. Однако я не могу понять, как создать объект DataMapper::Collection для хранения моих объектов Factory_Girl.

Мысли?


person Josiah Kiehl    schedule 08.11.2010    source источник
comment
Можете ли вы показать заводское определение?   -  person zetetic    schedule 09.11.2010


Ответы (1)


Ха, можно вернуться и ответить на это.

DataMapper обслуживает объекты в специализированной структуре данных, похожей на массив, которая обрабатывает для вас сериализацию JSON. Если вы попытаетесь поместить объекты DM в обычный массив, это приведет к ужасной ошибке, порождая ошибки, о которых я упоминал выше.

person Josiah Kiehl    schedule 26.01.2011