Url生成错误Rails:没有路由匹配

时间:2016-03-09 00:24:37

标签: ruby-on-rails

我有一个链接叫我的笔记本属于我的笔记本,如下:

 == link_to "#{note.title.upcase}", notebook_note_path(note), id:  "note_name"

我不知道为什么会收到错误。

这是我的路线:

resources :notebooks do
  resources :notes
end

1 个答案:

答案 0 :(得分:0)

由于您有嵌套路由,因此需要将两个对象传递给辅助方法。而不仅仅是note,请尝试传递notebooknote

notebook_note_path(note.notebook, note)

供参考,当您设置rake routes时,请查看routes.rb的输出:

notebook_notes GET    /notebooks/:notebook_id/notes(.:format)          notes#index
                   POST   /notebooks/:notebook_id/notes(.:format)          notes#create
 new_notebook_note GET    /notebooks/:notebook_id/notes/new(.:format)      notes#new
edit_notebook_note GET    /notebooks/:notebook_id/notes/:id/edit(.:format) notes#edit
     notebook_note GET    /notebooks/:notebook_id/notes/:id(.:format)      notes#show
                   PATCH  /notebooks/:notebook_id/notes/:id(.:format)      notes#update
                   PUT    /notebooks/:notebook_id/notes/:id(.:format)      notes#update
                   DELETE /notebooks/:notebook_id/notes/:id(.:format)      notes#destroy
...

由于此路径的URI为/notebooks/:notebook_id/notes/:id,因此必须同时包含笔记本ID和注释ID(Rails将替换前面带有冒号的那些,并将传递给辅助方法的资源的id替换为)。