我正在开发一个Rails API(Rails 4.2.0.beta4),反过来由于客户端将负责生成新的和编辑表单,我的RESTful控制器只需要5个动作。而不是必须做这样的事情:
resources :media, except: [:new, :edit]
resources :media_collections, except: [:new, :edit]
etc...
我是否可以通过某种方式在一个区域内定义except: [:new, :edit]
块中的所有资源?看起来很疯狂,不得不将其附加到资源声明中,对吗?
答案 0 :(得分:1)
您可以创建一个抽象的方法。我会为此创建一个新模块,并使用extend
使routes中的方法可用.rb
module ApiResource
def api_resources(name, options = {}, &block)
resources name, options.merge({:except => [:new, :edit]}, &block)
end
end
# in routes.rb:
MyApp::Application.routes.draw do
extend ApiResource
api_resources :media
api_resources :media_collections
# ...
end