0

这是我的模型:

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

一切都恢复正常。但这应该不再是必要的了。

我在这里想念什么?

4

1 回答 1

0

这里的问题是我有一个由脚手架生成器创建的夹具文件。一旦我删除了fixtures文件,一切都很好。

于 2012-05-10T15:52:21.710 回答