我有一个应用,我希望永远无法删除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"
(这绝对是一条路线,如果我将resources :foos
留在routes.rb文件中,它就有效。)
我已经读了几次来自外面的路由,但我想我没有得到它。任何帮助将不胜感激。
答案 0 :(得分:2)
使用resources
命令时,您可以使用except
和only
选项指定要包含的标准路由:
resources :foo, :except => [:destroy] do
end
或
resources :foo, :only => [:index, :create, :show] do
end
答案 1 :(得分:1)
要防止创建删除路由,请执行以下操作:
resources :foos, :except => :destroy
关于你的第二个问题(如果我理解正确的话),你必须使用嵌套资源:
resources :bars do
resources :foos, :except => :destroy
end
这将创建许多路线,包括:
/bars/:bar_id/foos/:id