2017-02-16 67 views
2

我正在爲Web應用程序開發API。在一個特定情況下,我面臨的情況是僅當param1的值爲false時才需要param2。我能夠使用條件語句來實現它。我想知道在這種類型的驗證中是否有葡萄內置的方法。在東西線下方基於rail-grape中的條件驗證參數

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

回答

0

你可能需要mutually_exclusive驗證,以確保給予PARAMS不存在同時在請求

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

葡萄支持它version 0.8.0

開始有也有其他選項,如exactly_one_of,all_or_none_of,at_least_one_ofRead more

+0

感謝Slava。但是我的請求包含了這兩個參數。我正在使用ember.js作爲前端,不允許選擇要發送到rails的參數。 – sureshprasanna70