我有一个应用程序,我希望永远不能删除Foo
。如何将resources :foos
配置为不创建删除路由?
此外,foos
属于bars
,应仅显示在bars
显示页面上。我已经尝试了以下get
路由,但我得到了相关的错误:
get "/foos/:id"
ArgumentError at /bars/1220
missing :controller
--
get "/foos"
ArgumentError at /bars/1220
missing :action
--
get "foos/show"
No route matches [GET] "/bars/1220"
(这肯定有一个路由,如果我在routes.rb文件中留下resources :foos
,它就会起作用。)
我已经读过几次外面的路由了,但我想我不明白。如果有任何帮助,我将不胜感激。
您可以指定使用resources
命令时要包括的标准路由,其中包括except
和only
选项:
resources :foo, :except => [:destroy] do
end
或
resources :foo, :only => [:index, :create, :show] do
end
要防止创建删除路由,请执行以下操作:
resources :foos, :except => :destroy
关于你的第二个问题(如果我理解正确的话),你必须使用嵌套资源:
resources :bars do
resources :foos, :except => :destroy
end
这将创建许多路线,包括:
/bars/:bar_id/foos/:id