Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 在show action上未获得路由匹配_Ruby On Rails_Routes - Fatal编程技术网

Ruby on rails 在show action上未获得路由匹配

Ruby on rails 在show action上未获得路由匹配,ruby-on-rails,routes,Ruby On Rails,Routes,我正在尝试使用以下路径中的路径,这里是rake routes chapter GET/chapters/:id(:format){:action=>“show”,:controller=>“chapters”} chapter_path创建了一个指向/chapters/x的链接,这是正确的,但我在尝试访问它时遇到了路由错误 没有路由匹配{:controller=>“chapters”}` 这是我的路线(我正在使用浅层路线创建book\u chapters和book\u chapters\u ne

我正在尝试使用以下路径中的路径,这里是
rake routes

chapter GET/chapters/:id(:format){:action=>“show”,:controller=>“chapters”}

chapter_path创建了一个指向
/chapters/x
的链接,这是正确的,但我在尝试访问它时遇到了路由错误

没有路由匹配{:controller=>“chapters”}`

这是我的路线(我正在使用浅层路线创建
book\u chapters
book\u chapters\u new
路径

resources :books do
  resources :chapters, :shallow => true
end
当我用rake路由测试路由时,我得到了书籍、章节、新的章节和书籍,所以我不知道出了什么问题

当我删除
:shallow=>true
时,我可以访问
/books/1/chapters/6
,但我只希望它是
/chapters/6

这就是我的终端的样子

所以
/chapters/id
/chapters/id/edit
应该可以正常工作


我已经用
触摸tmp/restart.txt
重新启动了服务器,并运行了
rails s
,以查看路由是否也在那里工作,
rake routes
为我提供了可接受的路由,但它们对我不起作用。

是否为路径帮助程序提供了参数,例如

chapter_path(@chapter)

我不知道如何使用:浅路线,在rails指南中也没有关于如何使用:浅路线的示例,因此,我只能像这样使用嵌套路线

resources :books do
  resources :chapters
end
现在这意味着类似于
chapters\u url
chapters\u path
的东西将不起作用

所以我必须到处做这样的事情

book_chapter_url(@chapter.book, @chapter)


它可以工作,但是有一点代码味道,因为我使用了@chapter两次,整个url应该可以通过chapter id来解析。

是的,像这样
chapter是书籍索引中for循环的迭代器。创建的链接是/chapters/id,这是我想要的,但是该页面是问题所在,尽管
rake routes
告诉我有
chapter\u path()
。可能是个愚蠢的问题,但是您是否重新启动了服务器以便可以提取路由?您可以进入rails控制台并尝试
应用程序chapter\u path(chapter.first)
edit_book_chapter_path(@chapter.book, @chapter)