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 在rspec集成测试中使用嵌套模型构建模型_Ruby On Rails 3_Rspec_Integration Testing_Nested Attributes - Fatal编程技术网

Ruby on rails 3 在rspec集成测试中使用嵌套模型构建模型

Ruby on rails 3 在rspec集成测试中使用嵌套模型构建模型,ruby-on-rails-3,rspec,integration-testing,nested-attributes,Ruby On Rails 3,Rspec,Integration Testing,Nested Attributes,我知道我可以在rspec中做类似的事情: let(:project) { Project.new } 但在我的应用程序中,项目接受任务的\u嵌套的\u属性\u,当我生成项目表单时,我会使用以下方法构建一个任务: @project = Project.new @project.tasks.build 我需要像这样的东西: let(:project) { Project.new.tasks.build } 但这似乎不起作用 在我的rspec测试中,我如何才能做到这一点?我不确定我是否理解你的意

我知道我可以在rspec中做类似的事情:

let(:project) { Project.new }
但在我的应用程序中,项目接受任务的\u嵌套的\u属性\u,当我生成项目表单时,我会使用以下方法构建一个任务:

@project = Project.new
@project.tasks.build
我需要像这样的东西:

let(:project) { Project.new.tasks.build }
但这似乎不起作用


在我的rspec测试中,我如何才能做到这一点?

我不确定我是否理解你的意思。无论如何,如果项目和任务是模型,项目有很多任务,任务属于项目,那么:

工厂.rb

规范中:

alex,我使用let:project{FactoryGirl.build:project_with_task}设置了一个工厂,其中一个项目有一个任务,但我不确定这是否是在构建一个项目+任务,每个字段中都有值,而不是空表单字段。如果没有简单的方法,我会坚持使用它,因为它应该和我想要的测试一样。
  factory :project do
    name "Foo"
  end
  factory :task do
    name "Bar"
    project
  end
let(:task) { FactoryGirl.build(:task) }

before { FactoryGirl.build(:project) }