Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/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.2 没有路线匹配_Ruby On Rails 3.2_Rails Routing - Fatal编程技术网

Ruby on rails 3.2 没有路线匹配

Ruby on rails 3.2 没有路线匹配,ruby-on-rails-3.2,rails-routing,Ruby On Rails 3.2,Rails Routing,我将按照以下步骤构建我的向导,除了我首先在专用控制器中创建模型,然后在保存时重定向到steps控制器,但我收到一个路由错误,显示: No route matches {:action=>"show", :controller=>"needs_personals/steps"} 重定向代码如下所示: redirect_to needs_personal_step_path, :needs_personal_id => @needsPersonal.id 我使用了needs\u

我将按照以下步骤构建我的向导,除了我首先在专用控制器中创建模型,然后在保存时重定向到steps控制器,但我收到一个路由错误,显示:

No route matches {:action=>"show", :controller=>"needs_personals/steps"}
重定向代码如下所示:

redirect_to needs_personal_step_path, :needs_personal_id => @needsPersonal.id
我使用了
needs\u personal\u step\u path
,因为我的
rake routes
输出了以下内容:

    needs_personal_steps GET    /needs_personals/:needs_personal_id/steps(.:format)          needs_personals/steps#index
                         POST   /needs_personals/:needs_personal_id/steps(.:format)          needs_personals/steps#create
 new_needs_personal_step GET    /needs_personals/:needs_personal_id/steps/new(.:format)      needs_personals/steps#new
edit_needs_personal_step GET    /needs_personals/:needs_personal_id/steps/:id/edit(.:format) needs_personals/steps#edit
     needs_personal_step GET    /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#show
                         PUT    /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#update
                         DELETE /needs_personals/:needs_personal_id/steps/:id(.:format)      needs_personals/steps#destroy
在routes文件中,我有以下内容:

resources :needs_personals do
  resources :steps, controller: 'needs_personals/steps'
end
如果我键入指向浏览器的路径,它将工作
/needs\u personals/90/steps

谢谢

2012年9月29日更新

我相信我已经弄清楚了为什么会这样做,并实施了一个变通方案。我认为这是因为id参数的混乱。尽管传递了
needs_personal_id
,但它似乎将id视为链接的最后一个参数,而不是中间id

我的工作只是将其指向实际的字符串url:

redirect_to "/needs_personals/#{@needsPersonal.id}/steps"

这很有效。虽然我很想知道如何用正确的方法去做

我想这就是你想要的:

redirect_to needs_personals_steps_path(@needsPersonal.id, :first_step)

其中:第一步是向导第一步的符号。

谢谢。你的回答几乎是正确的。因此,我要说的是,它实际上是
重定向到needs\u personal\u steps\u路径(@needsPersonal.id,:first\u step)
猜测,因为我们处理的是一个单一的needsPersonal模型,而不是全部。可以说,再次感谢你让我走上了正确的道路;)回来看这篇文章,注意到我的评论中有一个拼写错误。它实际上是:
重定向到needs\u personal\u step\u路径(@needsPersonal.id,:first\u step)