файл to_yaml неправильно загружается в rspec (проект rails) - PullRequest
1 голос
/ 20 ноября 2010

Я пытаюсь экспортировать свою базу данных разработки sqlite3 в мою тестовую базу данных.Чтобы сделать это, я сначала экспортировал свою модель в консоль rails и сохранил ее в файл.

> MyModel.all.to_yaml   # this was saved to mymodels.yml

Теперь, когда я запускаю rspec, она не работает при попытке разобрать mymodels.yml.Я получаю сообщение об ошибке:

Failure/Error: Unable to find matching line from backtrace
 a YAML error occurred parsing /Users/MakeM/MyProject1/spec/fixtures/mymodels.yml.

Обратите внимание, что YAML должен быть с постоянным отступом, используя пробелы.Вкладки не допускаются.Пожалуйста, посмотрите на http://www.yaml.org/faq.html Точная ошибка была: NoMethodError: неопределенный метод `keys 'для nil: NilClass

Есть идеи, почему я получаю эту ошибку?Одна вещь, которую я должен упомянуть, - то, что yaml, который выводится to_yaml, выглядит немного странным для меня.Вот часть этого:

--- 
- !ruby/object:MyModel 
  attributes: 
    id: 133
    book: FirstBook
    chapters: 50
    created_at: 2010-10-06 05:03:15.709931
    updated_at: 2010-10-06 05:03:15.709931
    abbr: FB
  attributes_cache: {}

  changed_attributes: {}

  destroyed: false
  marked_for_destruction: false
  new_record: false
  previously_changed: {}

  readonly: false

1 Ответ

0 голосов
/ 20 ноября 2010

Лучше использовать только сохранение данных в вашей базе данных, но не все данные бесполезны. Поэтому попробуйте сгенерировать свой Yaml следующим образом:

MyModel.all.map(&:attributes).to_yaml

Предупреждение, эта техника может взорвать вашу оперативную память, если у вас много данных,Подумайте, чтобы создать свой хамл с лимитом / смещением.или с paginated_each из will_paginate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...