У меня есть две зависимые модели с ассоциацией один ко многим
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
, установленным в один однако в предыдущем сценарии две записи в таблице posts
были созданы и удалены, поэтому значение id
должно начинаться с 3
, а не с 1
. Я использовал pry
для отладки этого процесса и заметил, что, если я использую FactoryGirl.build( :post )
, он правильно устанавливает значение, но если я использую FactoryGirl.build( :user )
, то значение post.id
всегда равно 1
. Как я могу сделать это buld записи с правильными id
?
EDIT
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