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,如果提供的参数无效(缺少 :handle 键,包括额外的 :id 键等),则返回 400。
有谁知道提供这样的东西的图书馆?这是基于Application.routes
.