我有两个具有一对多关联的依赖模型
class Post < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :post
end
我在post_id
表中的users
中的被定义为外键
我写了两个黄瓜场景 - 首先我(使用factory_girl帮助)创建两个用户,然后我还想创建两个用户,但创建失败,因为factory_girl
使用{{post
构建了依赖id
记录1}}设置为1但是在上一个方案中,posts
表中的两个记录已创建并删除,因此id
值应从3
开始,而不是从1
开始。我使用pry
来调试此过程并发现如果我使用FactoryGirl.build( :post )
它会正确设置值,但如果我使用FactoryGirl.build( :user )
关联post.id
的值始终为1
}。如何使用正确的id
?
修改
FactoryGirl.define do
sequence :composite_id do |n|
"F98F3806-#{sprintf("%04X", n)}-4C96-879C-2C6F38213D8E"
end
# Post
factory :post do
sequence( :post_id ) { |n| "#{n}" }
some_field "Lorem Ipsum is simply dummy text of the printing a"
...
end
# User
factory :user do
user_id { FactoryGirl.generate( :composite_id )}
association :post_id, :factory => :post
...
end
end
答案 0 :(得分:2)
那应该是association :post
。 FactoryGirl将找出ID字段。