Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 Rails 4简单表单和嵌套资源未定义方法_Ruby On Rails_Ruby On Rails 4_Routes_Simple Form_Nested Routes - Fatal编程技术网

Ruby on rails Rails 4简单表单和嵌套资源未定义方法

Ruby on rails Rails 4简单表单和嵌套资源未定义方法,ruby-on-rails,ruby-on-rails-4,routes,simple-form,nested-routes,Ruby On Rails,Ruby On Rails 4,Routes,Simple Form,Nested Routes,我得到未定义的方法错误: undefined method `challenges_path' 我想我的表格是正确的,\u form.haml = simple_form_for [@skit, @challenge], html: { class: "form-horizontal" } do |f| 以上表格的链接: = link_to 'Submit', new_skit_challenge_path(params[:skit_id]), class: "btn btn-default

我得到未定义的方法错误:

undefined method `challenges_path'
我想我的表格是正确的,\u form.haml

= simple_form_for [@skit, @challenge], html: { class: "form-horizontal" } do |f|
以上表格的链接:

= link_to 'Submit', new_skit_challenge_path(params[:skit_id]), class: "btn btn-default" 
这是我的路线

resources :skits do
  resources :challenges
end
这是我的挑战\u控制器。rb

def new
  @challenge = Challenge.new
end

我做错了什么?您还需要哪些信息来帮助调试此问题?

也许您可以尝试这样做:

resources :skits, shallow: true do
  resources :challenges
end
未定义的方法“挑战\u路径”

问题是
@skit
nil
,因为您尚未在
new
操作中初始化
@skit

def new
  @challenge = Challenge.new
  @skit = Skit.find(params[:skit_id]) #you need this line
end