検証に合格するために、プロジェクトには少なくとも 1 つのタスクが同時に作成されている必要があります。これは、これを検証するために使用するスニペットです。
class Project < ActiveRecord::Base
validates :tasks, :length => { :minimum => 1 }
...
end
私が抱えている課題は、FactoryGirl を使用してタスクを前もってプロジェクトを構築するための適切なファクトリを作成することです。私は使用しています:
FactoryGirl.define do
factory :task do
name "Get this test passing"
project
end
factory :project do
title "Complete the application"
factory :project_with_tasks do
ignore do
tasks_count 5
end
after(:create) do |project, evaluator|
FactoryGirl.create_list(:task, evaluator.tasks_count, project: project)
end
end
end
end
問題は、実際にプロジェクトを作成してから、関連するタスクを作成しようとするため、これが失敗することです。エラーは次のように報告されます。
Failure/Error: project = FactoryGirl.create(:project_with_tasks, tasks_count: 2)
ActiveRecord::RecordInvalid:
Validation failed: Projects must have at least one task
にbefore(:create)
すると、プロジェクトを参照できなくなります。
どんな助けでも大歓迎です!