【问题标题】:Ruby/Rails library for DRYing up resource access用于干燥资源访问的 Ruby/Rails 库
【发布时间】:2013-10-22 08:10:46
【问题描述】:

Rails 控制器操作中的一个常见模式是

  1. 获取资源
  2. 对资源做一些事情(可选)
  3. 以序列化格式返回资源。

我正在寻找一个抽象出第一步的库,以便我的控制器操作可以假定资源已成功获取并避免检查异常情况。

例如,这是一个假设的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


    【解决方案1】:

    gem platformatec/inherited_resources 与此非常接近。

    【讨论】:

    • 谢谢你的建议,我去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2010-11-26
    相关资源
    最近更新 更多