我正在创建一个API端点,其中包含一个文件上传域和几个字符串域。我的目标是允许客户端清除这些字符串字段上的值,即DB应该将这些值持久化为null。
但是,由于请求可能包含文件,客户端应将Content-type标头设置为multipart/form-data。这意味着客户端不能发送"null“的表示,而只能发送空字符串,以指示清除给定字符串字段的值的意图。
有没有办法让grape-api库知道,当它收到一个多部分请求时,它应该能够使params中的空白字符串值为空,或者有没有更好的方法来实现我想要实现的目标?
发布于 2019-01-20 22:14:39
Grape.configure do |config|
config.param_builder = Grape::Extensions::Hashie::Mash::ParamBuilder
end您可以覆盖参数构建器。扩展默认方法并覆盖build_params方法或对其进行补丁。
params.transform_values {|v| v.eql?('') ? nil : v }https://stackoverflow.com/questions/52291096
复制相似问题