有没有人遇到过这个:
我有这样的事情:
型号:
class User < ActiveRecord::Base
authenticates_with_sorcery!
attr_accessible :forename, :surname, :email, :password, :password_confirmation
...
end
class Manager < User
has_many :things_to_manage
...
end
class ThingsToManage < ActiveRecord::Base
attr_accessible :stuff, :more_stuff
belongs_to :manager
...
end
我想建立一个工厂,以便FactoryGirl.create(:things_to_manage)将使用Manager(继承自User)创建一个ThingsToManager模型(保存在数据库中)
我的工厂是这样的:
FactoryGirl.define do
factory :user do
forename 'Test'
surname 'User'
sequence(:email) {|n| "#{forename}.#{surname}#{n}@test.com".downcase}
password 'lalala123@@'
end
end
FactoryGirl.define do
factory :manager do
end
end
FactoryGirl.define do
factory :things_to_manage do
stuff "rhubarb rhubarb"
more_stuff "la la la"
association :manager, :factory => :user
end
end
association :manager, :factory => :user
不起作用;我得到了
ActiveRecord :: AssociationTypeMismatch:经理(#70275174714940) 预计,有用户(#70275151319360)
有什么想法吗?
答案 0 :(得分:0)
根据this answer,您可以尝试将经理工厂更改为:
FactoryGirl.define do
factory :manager, class: Manager, :parent => :user do
end
end
然后你的things_to_manage工厂:
FactoryGirl.define do
factory :things_to_manage do
stuff "rhubarb rhubarb"
more_stuff "la la la"
manager
end
end