我无法理解这一点。我有一个课程工厂,我用它来创建两个对象。当我访问会计课程的页面时(如下所示),它会显示营销课程页面。但是,如果我首先使用工厂女孩来创建会计课程,那么它会访问正确的页面并且测试通过。
describe "Course pages" do
subject { page }
let!(:published_course) { FactoryGirl.create(:course, title: 'Marketing') }
let!(:unpublished_course) { FactoryGirl.create(:course, title: 'Accounting') }
describe "displaying the right page" do
it "should display the accounting course page" do
visit course_path(unpublished_course)
expect(page).to have_content('Accounting')
end
end
end
它显然会访问首先创建的对象的页面,但我不知道为什么或如何解决此问题。
谢谢,
马特
答案 0 :(得分:0)
course_path
将生成正确的网址(即包含正确的id
参数),但由您的控制器查找该ID的课程并将其传递给您的视图。相反,您的控制器/视图必须密谋显示创建的第一个课程。