新手问题 Grape 的 params 如何 剔除一个不需要的 param

u1450154824 · 2016年04月13日 · 最后由 creeek 回复于 2016年05月11日 · 1749 次阅读

exactly_one_of 又应该怎么用

如果 我希望有个特定的参数我想保护起来,不想外部传入,应该怎么做

比如 except_of 之类的?

共收到 5 条回复

#1楼 @cysh 人家问的是grape,不是rails

#2楼 @alucardpj 标题改过吧。。?

Grape 不是可以描述参数吗?

找到了,在 activesuppoert 里,

class Hash
  # Returns a hash that includes everything but the given keys.
  #   hash = { a: true, b: false, c: nil}
  #   hash.except(:c) # => { a: true, b: false}
  #   hash # => { a: true, b: false, c: nil}
  #
  # This is useful for limiting a set of parameters to everything but a few known toggles:
  #   @person.update(params[:person].except(:admin))
  def except(*keys)
    dup.except!(*keys)
  end

  # Replaces the hash without the given keys.
  #   hash = { a: true, b: false, c: nil}
  #   hash.except!(:c) # => { a: true, b: false}
  #   hash # => { a: true, b: false }
  def except!(*keys)
    keys.each { |key| delete(key) }
    self
  end
end

如果是在 API 级别,可以使用 params do ... end 定义哪些参数的格式,通过 declared(params) 来使用格式化的参数

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册