grape-api-强制将空字符串设置为null

时间:2018-09-12 08:47:46

标签: grape grape-api

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

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

grape-api库是否有一种方法可以知道,当它接收到一个多部分请求时,它应该能够使params中的空白字符串值无效,或者是否有更好的方法来实现我想要实现的目标? / p>

1 个答案:

答案 0 :(得分:1)

Grape.configure do |config|
  config.param_builder = Grape::Extensions::Hashie::Mash::ParamBuilder
end

您可以覆盖参数构建器。扩展默认值并覆盖build_params方法或使用猴子补丁。

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