根据rails-grape中的条件验证参数

时间:2017-02-16 10:35:40

标签: ruby-on-rails ruby ruby-on-rails-4 grape-api

我正在为Web应用程序开发API。在一个特定情况下,我面临的情况是,只有当param1的值为false时才需要param2。我能够使用条件语句来实现它。我想知道这种类型的验证是否有任何内置的葡萄方法。下面的一些内容

params do
 requires :model_name, type: Hash do
   optional :params1
   if params1 == false
     require :params2
   end
 end
end

1 个答案:

答案 0 :(得分:0)

您可能需要mutually_exclusive验证,以确保在请求中同时存在给定的参数

params do
 requires :model_name, type: Hash do
   optional :params1
   optional :params2
   mutually_exclusive :params1, :params2
 end
end

Grape从version 0.8.0

开始支持它

还有其他选项,例如exactly_one_ofall_or_none_ofat_least_one_ofRead more