【发布时间】:2015-07-31 16:57:21
【问题描述】:
我正在为学校分配作业,但我收到了一个我不理解的路由错误。我正在尝试集成投票功能,以允许用户对不同的帖子投赞成票或反对票网站。但是,我不断收到以下错误:
Routing Error
No route matches [POST] "/topics/post_up_vote_path(post)"
我最近更新了我的 routes.rb 文件,使其看起来像这样以实现浅嵌套:
Rails.application.routes.draw do
devise_for :users
resources :users, only: [:update]
resources :topics do
resources :posts, except: [:index]
end
resources :posts, only: [] do
resources :comments, only: [:create, :destroy]
post '/up-vote' => 'votes#up_vote', as: :up_vote
post '/down-vote' => 'votes#down_vote', as: :down_vote
end
get 'about' => 'welcome#about'
root to: 'welcome#index'
end
现在我的 up_votes 和 down_votes 路线如下所示:
post_up_vote_path POST /posts/:post_id/up-vote(.:format) votes#up_vote
post_down_vote_path POST /posts/:post_id/down-vote(.:format) votes#down_vote
从我上面收到的错误来看,我的应用程序正在搜索 /topics/post_up_vote_path(post) 而它应该搜索 /posts/:post_id/up-vote 。我有点卡在这一点上,不知道如何让事情正确路由..
这里是与该项目相关的 GitHub 分支,以供进一步参考其他文件:
https://github.com/jlquaccia/Bloccit/tree/checkpoint-49-voting
【问题讨论】:
-
请附上触发错误的相关代码?
-
发布
rake routes的输出。这会让我们看到 rails 知道的路线。
标签: ruby-on-rails ruby routes