Rails 4 simple_form_for和嵌套资源未定义方法

时间:2016-01-26 05:26:22

标签: ruby-on-rails ruby-on-rails-4 routes simple-form nested-routes

我收到了未定义的方法错误:

undefined method `challenges_path'

我以为我的表单正确, _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

这是我的 challenge_controller.rb

def new
  @challenge = Challenge.new
end

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

2 个答案:

答案 0 :(得分:0)

也许你可以尝试这样做:

resources :skits, shallow: true do
  resources :challenges
end

答案 1 :(得分:0)

  

未定义的方法`challenge_path'

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

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