默认值:Rails资源路由的排除选项

osd*_*iab 5 ruby routing routes ruby-on-rails ruby-on-rails-4

一个小问题:

我正在使用Rails作为我的REST API,但由于它是一个RESTful API,我并不真正需要:new:edit路由任何我的资源,因为人们只会通过自动JSON请求完全与此API交互,而非图形化.例如,不需要专用的编辑页面.

目前,我需要为每个定义的资源做类似的事情:

# routes.rb
resources :people, except: [:new, :edit]
Run Code Online (Sandbox Code Playgroud)

:except在每个资源上都有选项并不是什么大事/config/routes.rb,但有没有办法定义默认值,所以我不必在每个资源上都指定这个?我想稍微干掉这段代码,不要做任何蹩脚的事情,比如在任何地方传递默认选项的局部变量.

更一般地说,你可以设置Rails路由的默认选项:exclude吗?

谢谢!

Bro*_*tse 10

with_options进行救援!

with_options(except: [:new, :edit]) do |opt|
  opt.resource :session
  opt.resource :another_resource
  opt.resources :people
end
Run Code Online (Sandbox Code Playgroud)