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)