2017-02-16 3 views
2

Je développe des API pour une application web. Dans un cas spécifique, je suis confronté à une situation où je n'ai besoin de param2 que lorsque la valeur de param1 est fausse. J'ai été en mesure d'utiliser des déclarations conditionnelles pour y parvenir. Je voudrais savoir s'il existe des méthodes intégrées dans le raisin pour ce type de validation. Quelque chose sur les lignes ci-dessousValider les paramètres basés sur la condition dans rails-grape

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

Répondre

0

Vous avez probablement besoin de validation mutually_exclusive qui assure données params ne sont pas présents en même temps dans une demande

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

raisin supporte à partir de version 0.8.0

Il sont également d'autres options comme exactly_one_of, all_or_none_of, at_least_one_of. Read more

+0

Merci Slava. Mais ma requête contient les deux paramètres. J'utilise ember.js pour le frontal qui ne permet pas de choisir et de choisir les paramètres à envoyer aux rails. – sureshprasanna70