Factory Girl - 覆盖belongs_to对象的属性

时间:2013-03-04 19:23:25

标签: ruby-on-rails ruby ruby-on-rails-3 factory-bot

我正在尝试创建一个Meeting对象,同时这样做会覆盖Meeting对象所属的Course对象的属性:

以下是我的模特:

class Course < ActiveRecord::Base
  attr_accessible :name, :description
end

class Meeting < ActiveRecord::Base
  attr_accessible :name
  belongs_to :course
end

以下是我的定义:

factory :course, class: Course do
    name      "Generic Course Name"
    description: "Very cheap"
end

factory :meeting, class: Meeting do
  name "Meeting name"
  course
end

这是我正在尝试做的事情:

FactoryGirl.create(:meeting) do |meeting| 
    meeting.course.name = "other name"
end

但是,我似乎无法覆盖默认的课程名称。我可以通过简单地用meeting.name =“other name”替换meeting.course.name =“other name”来覆盖会议名称,但访问belongs_to对象没有达到预期的效果。

任何帮助都将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:3)

怎么样?

course = create(:course, name: "My Course Name")
create(:meeting, course: course)