在ruby on rails应用程序中,我有以下路径文件:
Rails.application.routes.draw do
get 'pages/index'
get 'pages/about'
root to: 'pages#index'
resource :graphs, only: [:index, :create, :show, :destroy]
end
这将生成图形的路径#create,graphs#show,graphs#destroy但不会生成图形#index。我认为这样做的原因是,当我生成控制器时,我使用了rails g controller Graph
,即我使用了单数形式而不是多个图形。为了解决这个问题,我更改了相应的文件和目录名称,例如controller / graphs_controller.rb和views / graphs,我将graphs_controller.rb中的常量更改为GraphsController。除了没有生成索引路由之外,一切似乎都有效。我可以通过将资源声明更改为
resource :graphs, only: [:create, :show, :destroy] do
get :index
end
但这看起来很混乱。似乎我需要改变其他东西来实现从图形到图形的转换。我该如何解决?请注意,我已多次重启服务器。
答案 0 :(得分:4)
使用resources
代替resource
:
Rails.application.routes.draw do
get 'pages/index'
get 'pages/about'
root to: 'pages#index'
resources :graphs, only: [:index, :create, :show, :destroy]
end
答案 1 :(得分:0)
应该是资源而不是资源