Ruby on rails 未定义的方法`新';对于nil:NilClass-what';rails 3.1.0中是否有嵌套关联?

Ruby on rails 未定义的方法`新';对于nil:NilClass-what';rails 3.1.0中是否有嵌套关联?,ruby-on-rails,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3.1,我们的应用程序中有报价和测试计划。关系是quote有一个测试计划,测试计划属于quote。在路由文件中,它是: resources :test_plans, :only => [:index] resources :quotes do resources :test_plans end 问题是@quote.test\u plan返回nil(而不是对象),而@quote.test\u plan.new()会导致错误,表示未定义的方法new()。对这个问题有什么想法吗?非

我们的应用程序中有报价和测试计划。关系是quote有一个测试计划,测试计划属于quote。在路由文件中,它是:

  resources :test_plans, :only => [:index]
  resources :quotes do
    resources :test_plans
  end
问题是@quote.test\u plan返回nil(而不是对象),而@quote.test\u plan.new()会导致错误,表示未定义的方法new()。对这个问题有什么想法吗?非常感谢

@test_plan = @quote.build_test_plan 
使用@quote设置的外键创建@test_计划对象。这就解决了问题


使用@quote设置的外键创建@test_计划对象。这就解决了问题。

好了!我删除我的答案是因为你自己回答得更好。不过,我会在嵌套资源中使用单数形式(资源:test\u plan)。这样就消除了路由中不必要的ID。你从/quotes/1/test\u plans/1转到/quotes/1/test\u plan。好了!我删除我的答案是因为你自己回答得更好。不过,我会在嵌套资源中使用单数形式(资源:test\u plan)。这样就消除了路由中不必要的ID。您可以从/quotes/1/test\u plan/1转到/quotes/1/test\u plan。