使用具有belongs_to
关系的FactoryGirl时,我无法正确使用语法。
我的架构包括:
create_table "region_classifiers", force: true do |t|
t.string "name"
t.boolean "is_default"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "regions", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "region_classifier_id"
end
我的Region
模型是:
class Region < ActiveRecord::Base
belongs_to :region_classifier
end
我的工厂是:
factory :region_classifier do
name 'classifier 1'
is_default false
end
factory :region do
name 'region 1'
region_classifier
end
我可以用
创建一个区域Region.create(name: 'Bar', region_classifier: RegionClassifier.first)
但是当我调用FactoryGirl.create(:region)
时出现错误:
can't write unknown attribute `region_classifier_id' (ActiveModel::MissingAttributeError)
据推测,我错误地误读了FactoryGirl文档,但是我如何才能创建该区域呢?
修改
哦,好吧,没关系。我需要保持移动,所以我回滚数据库撤消对Region
的一系列更改,销毁了脚手架,删除了迁移,然后基于我想要的区域的当前版本创建了一个新的脚手架。它现在有效,很明显我的一次迁移并没有达到我想要的目的。