Я, вероятно, занимаюсь чем-то очень глупым, но я не могу пройти тест, потому что FactoryGirl.attributes_for
не выводит реляционное поле.FactoryGirl не выводит ассоциации с build_attributes
Вот мой project
завод:
FactoryGirl.define do
factory :project do
status 'active'
loan_amount 5000
start_date Time.now
end_date Time.now + 2.week.to_i
description "Sample Project"
user
end
end
Вот тест, который я пытаюсь получить этот тест пройти:
let(:user) { FactoryGirl.create(:user) }
let(:project_attributes) { FactoryGirl.attributes_for(:project, user: user) }
it 'assigns a newly created project as @project' do
post :create, { project: project_attributes }
expect(assigns(:project)).to be_a(Project)
expect(assigns(:project)).to be_persisted
end
Это выход project_attributes
:
{:status=>"active", :loan_amount=>5000, :start_date=>2015-12-21 12:07:32 -0800, :end_date=>2016-01-04 12:07:32 -0800, :description=>"Sample Project"}
Это дает мне ошибку:
@messages={:user=>["can't be blank"]}>
Любые идеи? Почему FactoryGirl не выводит пользователя при использовании attributes_for?
Может быть, что 'attributes_for' не признает ассоциацию. Что происходит, когда вы делаете 'user_id: user.id' вместо этого? – steel