在rspec中没有正确加载to_yaml文件(rails项目)

我正在尝试将我的开发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:nil的未定义方法`keys’:NilClass

知道我为什么会收到这个错误吗? 我应该提到的一点是,to_yaml输出的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 

最好只使用数据保存在您的数据库而不是所有数据都无用所以尝试生成你的Yaml:

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

警告,如果您有大量数据,此技术可能会爆炸您的RAM。 考虑生成带限制/偏移的haml。 或者使用will_paginate中的paginated_each。