0

我有一个应用程序,我希望永远无法删除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 文件中,它就可以工作。)

我已经从外部阅读了几次路由,但我想我没有得到它。任何帮助,将不胜感激。

4

2 回答 2

2

您可以使用和选项指定使用resources命令时要包含的标准路由:exceptonly

resources :foo, :except => [:destroy] do
end

或者

resources :foo, :only => [:index, :create, :show] do
end
于 2013-08-19T17:31:28.450 回答
1

要防止创建删除路由,请执行以下操作:

resources :foos, :except => :destroy

关于你的第二个问题(如果我理解正确的话),你必须使用嵌套资源:

resources :bars do
  resources :foos, :except => :destroy
end

这将创建许多路线,包括:

/bars/:bar_id/foos/:id
于 2013-08-19T17:31:50.077 回答