grape-api - заставляет пустую строку устанавливать значения в ноль - PullRequest
0 голосов
/ 12 сентября 2018

Я создаю конечную точку API, которая содержит поле загрузки файла и несколько строковых полей.Моя цель - разрешить клиентам очищать значения в этих строковых полях, то есть БД должна сохранять эти значения как null.

Однако из-за того, что запрос может содержать файлы, клиент должен установитьзаголовок Content-type до multipart/form-data.Это означает, что клиент не может отправить представление «null», но может только отправить пустую строку, чтобы указать намерение очистить значение для данного строкового поля.

Есть ли способ для библиотеки grape-apiзнать, что когда он получает составной запрос, он должен иметь возможность обнулить пустые строковые значения в параметрах, или есть лучший подход к тому, что я пытаюсь достичь?

1 Ответ

0 голосов
/ 20 января 2019
Grape.configure do |config|
  config.param_builder = Grape::Extensions::Hashie::Mash::ParamBuilder
end

Вы можете переопределить конструктор параметров. расширьте стандартное значение и переопределите метод build_params или исправьте его обезьяной.

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