使用FactoryGirl和belongs_to的语法

时间:2014-09-22 17:06:50

标签: ruby-on-rails-4 rspec factory-bot

使用具有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的一系列更改,销毁了脚手架,删除了迁移,然后基于我想要的区域的当前版本创建了一个新的脚手架。它现在有效,很明显我的一次迁移并没有达到我想要的目的。

0 个答案:

没有答案