Minitest:使用STI时表空

时间:2017-03-07 09:21:49

标签: ruby-on-rails database testing single-table-inheritance

我有一个单表继承数据模型,其中CityPage < Destination。这很好。

现在我添加了第二种类型CountryPage < Destination,我的测试失败了。具体来说,CityPage.all返回一个空结果,即使我有CityPage个灯具(之前没有改变过,并且工作完美)。

我做错了什么?为什么我的测试数据没有生成?

1 个答案:

答案 0 :(得分:0)

如果STI具有多个子模型,则需要使用以父项命名的一个灯具文件,并使用type属性区分各个灯具(即STI在引擎盖下执行的操作)。所以在我的情况下,我需要/test/fixtures/destinations.yml,而不是/test/fixtures/{city,country}_pages.yml

简短的谷歌搜索表明这与测试运行后Minitest清除数据库有关 - 请参阅下面的评论。