Я использую фабричную девушку с rspec, вот что у меня есть:
factories.rb
Factory.define :user do |f|
f.sequence(:fname) { |n| "fname#{n}" }
f.sequence(:lname) { |n| "lname#{n}" }
f.sequence(:email) { |n| "email#{n}@google.com" }
f.password "password"
f.password_confirmation { |u| u.password }
f.invitation_code "xxxxxxx"
end
Factory.define :group do |f|
f.sequence(:name) { |n| "myGroup#{n}" }
f.sequence(:private_email) { |n| "myGroup#{n}" }
end
Factory.define :permission do |f|
f.role_id 1
end
groups_controller_spec.rb
describe GroupsController do
include Devise::TestHelpers
before (:each) do
@user1 = Factory.create(:user)
@user1.confirm!
sign_in @user1
@group = Factory.create(:group)
@group2 = Factory.create(:group)
@group3 = Factory.create(:group)
@permission_user_1 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group)
@permission_user_2 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group2)
@permission_user_3 = Factory.create(:permission, :user => @user1, :creator_id => @user1.id, :group => @group3)
end
.......
Проблема в том, что в групповой модели есть поле для user_id, которое не устанавливается фабрикой. Как я могу создать пользователей, а затем заставить фабрику создать группу от имени этого пользователя. Нравится @ user1.group.factory.create (: group)?
Есть идеи? Спасибо