Rails 固定装置和命名空间模型 - ActiveRecord::Fixture::FixtureError
Rails fixtures and namespace model - ActiveRecord::Fixture::FixtureError
在一个应用程序中,我使用 Minitest 和 fixtures 完成了测试套件,我遇到了这样的问题,我无法解决,也找不到解决方案。
我有一个模型 Survey
和固定装置 test/fixtures/surveys.yml
:
one:
user: admin
name: Survey one
description: This is survey one
company: university
review_type: 1
two:
user: admin
name: Survey two
description: This is survey two
company: university
此外,我有命名空间 surveys
并且有一个问题模型 - Surveys::Question
(具有多态关联),它具有相应的固定装置 test/fixtures/surveys/questions.yml
:
one:
sentence: Survey question one?
display_order: 1
question_type: 0
questionable: one (Survey)
two:
sentence: Survey question two?
display_order: 2
question_type: 1
questionable: one (Survey)
到目前为止一切顺利,一切正常。但是每当我尝试向固定装置添加另一个 questions
定义时,让我们说:
three:
sentence: Survey question three?
display_order: 3
question_type: 2
questionable: one (Survey)
出现错误:ActiveRecord::Fixture::FixtureError: table "surveys" has no column named "sentence"
完全跟不上,怎么突然ActiveRecord::Fixtures
跟不上
如有任何建议,我将不胜感激。
确保您的数据库架构没有更改,并且您没有删除或重命名数据库中的列或 table。每当您更改架构和 运行 迁移时,请务必 运行 在 运行 进行测试之前 运行:
rake db:test:prepare
然后尝试 运行再次测试。如果您遇到相同的错误,则表明您的测试数据库缺少该列。检查您的迁移以确保。
此外,您认为 test/fixtures/surveys.yml
中可能需要 three:
吗?
在一个应用程序中,我使用 Minitest 和 fixtures 完成了测试套件,我遇到了这样的问题,我无法解决,也找不到解决方案。
我有一个模型 Survey
和固定装置 test/fixtures/surveys.yml
:
one:
user: admin
name: Survey one
description: This is survey one
company: university
review_type: 1
two:
user: admin
name: Survey two
description: This is survey two
company: university
此外,我有命名空间 surveys
并且有一个问题模型 - Surveys::Question
(具有多态关联),它具有相应的固定装置 test/fixtures/surveys/questions.yml
:
one:
sentence: Survey question one?
display_order: 1
question_type: 0
questionable: one (Survey)
two:
sentence: Survey question two?
display_order: 2
question_type: 1
questionable: one (Survey)
到目前为止一切顺利,一切正常。但是每当我尝试向固定装置添加另一个 questions
定义时,让我们说:
three:
sentence: Survey question three?
display_order: 3
question_type: 2
questionable: one (Survey)
出现错误:ActiveRecord::Fixture::FixtureError: table "surveys" has no column named "sentence"
完全跟不上,怎么突然ActiveRecord::Fixtures
跟不上
如有任何建议,我将不胜感激。
确保您的数据库架构没有更改,并且您没有删除或重命名数据库中的列或 table。每当您更改架构和 运行 迁移时,请务必 运行 在 运行 进行测试之前 运行:
rake db:test:prepare
然后尝试 运行再次测试。如果您遇到相同的错误,则表明您的测试数据库缺少该列。检查您的迁移以确保。
此外,您认为 test/fixtures/surveys.yml
中可能需要 three:
吗?