Rails控制器操作中的常见模式是
我正在寻找一个抽象出第一步的库,以便我的控制器操作可以假设资源已成功获取并避免检查异常情况。
例如,这是一个假设的show
操作:
def show
attrs = params.slice(:handle, :provider)
account = Account.find_by(attrs)
if account
respond_with account
else
head 404
end
end
我想要的更像是这样:
# controller
def show
respond_with resource
end
# some initializer (basically pseudocode)
resource do |params|
attrs = params.slice(:handle, :provider)
Account.find_by(attrs)
end
如果find_by
返回nil,库将处理返回404,如果提供的参数无效,则返回400(缺少:句柄键,包括额外的:id键等)。
有谁知道提供这样的东西的图书馆?这是Application.routes
之上的Rack中间件的一个很好的用例。