У меня есть следующие модели:
Users (id)
Project (id, name)
Roles (id, title)
Permissions (user_id, role_id, project_id)
С помощью Factory Girl я хочу создать фабрику, включающую 2 пользователей, 1 проект и разрешения, связывающие двух пользователей с проектом.
Вот что у меня есть:
Factory.define :user do |user|
user.fname "James"
user.lname "Bond"
user.email "james.bond@intuit.com"
user.password "password"
user.password_confirmation "password"
end
Factory.define :project do |project|
project.name "myproject"
project.private_email "myproject"
project.user_id do
(User.find_by_email('james.bond@intuit.com')).id
end
project.instance_id do
(User.find_by_email('james.bond@intuit.com')).instance_id
end
project.permissions {|permissions| [permissions.association(:permission)] }
end
Factory.define :permission do |permission|
permission.role_id 1
permission.creator_id do
(User.find_by_email('james.bond@intuit.com')).id
end
permission.user_id do
(User.find_by_email('james.bond@intuit.com')).id
end
permission.project_id do
(Project.find_by_name('myProject')).id
end
end
Но это ошибки с:
Ошибка / Ошибка: @project = Factory (: проект)
Ошибка выполнения:
Вызывается id для nil, который по ошибке будет равен 4 - если вы действительно хотите id nil, используйте object_id
Я новичок в фабрике, я правильно делаю? Спасибо