我正在创建一个API端点,其中包含一个文件上传字段和一些字符串字段。我的目标是允许客户清除这些字符串字段上的值,即数据库应将这些值保留为null
。
但是,由于请求中可能包含文件,因此客户端应将Content-type
标头设置为multipart/form-data
。这意味着客户端不能发送“ null”的表示,而只能发送空字符串以表明清除给定字符串字段的值的意图。
grape-api库是否有一种方法可以知道,当它接收到一个多部分请求时,它应该能够使params中的空白字符串值无效,或者是否有更好的方法来实现我想要实现的目标? / p>
答案 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 }