Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何在factory girl中使用种子数据?_Ruby On Rails 3_Rspec_Factory Bot - Fatal编程技术网

Ruby on rails 3 如何在factory girl中使用种子数据?

Ruby on rails 3 如何在factory girl中使用种子数据?,ruby-on-rails-3,rspec,factory-bot,Ruby On Rails 3,Rspec,Factory Bot,我正在写一个让用户在线测试的应用程序。该测试共有两组18个问题,这些问题在视图中随机进行。我试着写测试,以确保每个部分都有正确的18个问题。我想创建一个工厂,它将访问数据库并随机加载一系列问题。你知道怎么做吗?我可以硬编码文本,但实际上我想测试种子数据,并通过不重复seeds.rb和factory.rb中的问题来干燥代码 这是我所做的,是硬编码的 Factory.define :test do |test| test.association :user end Factory.defi

我正在写一个让用户在线测试的应用程序。该测试共有两组18个问题,这些问题在视图中随机进行。我试着写测试,以确保每个部分都有正确的18个问题。我想创建一个工厂,它将访问数据库并随机加载一系列问题。你知道怎么做吗?我可以硬编码文本,但实际上我想测试种子数据,并通过不重复seeds.rb和factory.rb中的问题来干燥代码

这是我所做的,是硬编码的

Factory.define :test do |test|
    test.association :user
end

Factory.define :question do |question|
    question.phrase "2+2"
    question.answer "4"
    question.association :test
end
然后,在我的测试中,我可以编写如下内容:

@test = Factory(:test, :user => @user)
@question = Factory(:question, :test => @test)
有什么办法吗


谢谢

如果在spec/factories.rb的顶部添加以下行如何:

load(Rails.root.join("db", "seeds.rb"))
如果您使用的是Rails 3.1,那么可以使用下面的行

Rails.application.load_seed

我从中得到了这个答案:

如果在spec/factories.rb的顶部添加以下行如何:

load(Rails.root.join("db", "seeds.rb"))
如果您使用的是Rails 3.1,那么可以使用下面的行

Rails.application.load_seed
我的答案来自: