这是我的模型:
class Project < ActiveRecord::Base
has_many :gs_collectors, dependent: :destroy
class GsCollector < ActiveRecord::Base
belongs_to :project
has_one :application, dependent: :destroy
class Application < ActiveRecord::Base
belongs_to :gs_collector
这是我的工厂:
factory :application do
....
association :gs_collector
association :dust_type
end
factory :gs_collector do
...
association :project
end
factory :project do
sequence(:name) { |n| "Project#{n}" }
contact_name 'John Customer'
end
Application模型曾经是belong_to Project,所以我只是使用迁移将db中的project_id更改为gs_collector_id。但是,现在我在尝试运行我的任何测试时遇到此错误(即使在与应用程序模型无关的单元/控制器上):
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'project' in 'field list': INSERT INTO `applications` (`project`, ....
为什么我会收到此错误?
如果我将此行添加回我的应用程序模型:
belongs_to :project
一切都恢复正常。但这应该不再是必要的了。
我在这里想念什么?