【问题标题】:grape-api - Force empty string to set values to null葡萄 api - 强制空字符串将值设置为 null
【发布时间】:2018-09-12 08:47:46
【问题描述】:

我正在创建一个 API 端点,其中包含一个文件上传字段和一些字符串字段。我的目标是允许客户端清除这些字符串字段上的值,即数据库应该将这些值保存为null

但是,由于请求可能包含文件,客户端应将Content-type 标头设置为multipart/form-data。这意味着客户端不能发送“null”的表示,而只能发送一个空字符串来指示清除给定字符串字段值的意图。

grape-api 库有没有办法知道当它接收到多部分请求时,它应该能够取消参数中的空白字符串值,或者有更好的方法来实现我想要实现的目标?

【问题讨论】:

    标签: grape grape-api


    【解决方案1】:
    Grape.configure do |config|
      config.param_builder = Grape::Extensions::Hashie::Mash::ParamBuilder
    end
    

    您可以覆盖参数生成器。扩展默认的并覆盖build_params 方法或猴子补丁它。

    params.transform_values {|v| v.eql?('') ? nil : v }
    

    【讨论】:

      猜你喜欢
      • 2014-12-06
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      相关资源
      最近更新 更多