ここに私のモデルがあります:
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
以前はアプリケーション モデルは Project に所属していたため、マイグレーションを使用して、db で project_id を gs_collector_id に変更しました。しかし、テストを実行しようとすると (アプリケーション モデルに関係のないユニット/コントローラーでも)、このエラーが発生します。
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'project' in 'field list': INSERT INTO `applications` (`project`, ....
このエラーが発生するのはなぜですか?
この行を Application モデルに追加すると、次のようになります。
belongs_to :project
すべてが再びうまく機能します。しかし、それはもう必要ないはずです。
ここで何が欠けていますか?