1

我们正在将 rails3 应用程序迁移到 Rails4。在 FactoryGirl 中,我们使用了这个特性:

trait :with_student do
    after_create do |resource|
      resource.students << FactoryGirl.create(:student)
    end
  end

在模型 rspec 中:

  let(:course_with_student) { create(:course, :with_student) }

我提出了 course_with_student 并给了我课程对象。但是当 raise course_with_student.students 输出是: #<ActiveRecord::Associations::CollectionProxy []>。在特征定义 resource.students 和学生对象中引发异常,但在 rspec 模型规范中没有。

4

1 回答 1

0

The way I usually use the trait is in an after_build block. Have a go at something like this:

trait :with_student do
  after_build do |course|
    course.students = FactoryGirl.create_list(:student, 1)
  end
end

For me that solves some similar problems that I ran into.

于 2013-06-24T08:42:10.773 回答