Исправьте это так (, как описано в этом посте )
Factory.define :user do |u|
u.login "test"
u.profile { |p| p.association(:profile) }
end
То, что вы также можете сделать (поскольку пользователю не нужен профиль для существования (на нем нет проверки)), это выполнить двухэтапное построение
Factory.define :user do |u|
u.login "test"
end
, а затем
profile = Factory :profile
user = Factory :user, :profile => profile
Полагаю, в этом случае вам достаточно одного шага, создайте пользователя на фабрике профилей и выполните
profile = Factory :profile
@user = profile.user
Кажется, это правильный путь, не правда ли?
Обновление
(согласно вашему комментарию) Чтобы избежать сохранения профиля, используйте Factory.build только для его построения.
Factory.define :user do |u|
u.login "test"
u.after_build { |a| Factory(:profile, :user => a)}
end