【发布时间】:2013-10-22 08:10:46
【问题描述】:
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 之上的机架中间件的一个很好的用例。
【问题讨论】:
标签: ruby-on-rails ruby controller rack