为什么我得到 "Routing error",即使我的路径在 "rake routes" 中?

Why do I get "Routing error" even though my path is in "rake routes"?

我正在使用 Rails 5. 我的佣金路线中有这个

localhost:sims nataliab$ rake routes
                         Prefix Verb   URI Pattern                                                   Controller#Action
    scenario_confidential_memos GET    /scenarios/:scenario_id/confidential_memos(.:format)          confidential_memos#index
                                POST   /scenarios/:scenario_id/confidential_memos(.:format)          confidential_memos#create
 new_scenario_confidential_memo GET    /scenarios/:scenario_id/confidential_memos/new(.:format)      confidential_memos#new
edit_scenario_confidential_memo GET    /scenarios/:scenario_id/confidential_memos/:id/edit(.:format) confidential_memos#edit
     scenario_confidential_memo GET    /scenarios/:scenario_id/confidential_memos/:id(.:format)      confidential_memos#show
                                PATCH  /scenarios/:scenario_id/confidential_memos/:id(.:format)      confidential_memos#update
                                PUT    /scenarios/:scenario_id/confidential_memos/:id(.:format)      confidential_memos#update
                                DELETE /scenarios/:scenario_id/confidential_memos/:id(.:format)      confidential_memos#destroy
                      scenarios GET    /scenarios(.:format)                                          scenarios#index
                                POST   /scenarios(.:format)                                          scenarios#create
                   new_scenario GET    /scenarios/new(.:format)                                      scenarios#new
                  edit_scenario GET    /scenarios/:id/edit(.:format)                                 scenarios#edit
                       scenario GET    /scenarios/:id(.:format)                                      scenarios#show
                                PATCH  /scenarios/:id(.:format)                                      scenarios#update
                                PUT    /scenarios/:id(.:format)                                      scenarios#update
                                DELETE /scenarios/:id(.:format)                                      scenarios#destroy

然而,当我启动 rails 开发服务器并访问 http://localhost:3000/sims/scenarios/new 时,出现错误

Routing Error

No route matches [GET] "/sims/scenarios/new"

当我的路径在我的 rake 路由中时,为什么会出现此错误?

前缀 sims 不在 url 上,我想你的意思是。应该是 http://localhost:3000/scenarios/new,不是吗?

您想在 sims 命名空间下组织您的 scenarios 吗?如果是这样,请查看本指南中的路由: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

本质上,您想要的是:

namespace :sims do resources :scenarios do resources :confidential_memos end end