j'ai un contrôleur factor
qui prend des valeurs de facteur pour deux types de facteurs différentsRails vérifier si params existent dans le contrôleur
- Facteur primaire
- facteur secondaire
Et je passe eux params comme suit:
class FactorController < AdminController
def create
if primary_factor_params ## LINE 5
do something
elsif secondary_factor_params
do something else
end
end
def primary_factor_params
params.require(:primary).permit(:user_id, ## LINE 70
:primary_factors)
end
def secondary_factor_params
params.require(:secondary).permit(:user_id,
:secondary_factors)
end
end
Mais dans le dessus quand j'essaie de passer un secondary_factor
je reçois l'erreur suivante:
ActionController::ParameterMissing (param is missing or the value is empty: primary):
app/controllers/factors_controller.rb:70:in `primary_factor_params' app/controllers/api/v1/admin/factors_controller.rb:5:in `create'
Donc, pour moi, il semble que cette erreur est à venir parce que je n'ai aucune valeur pour primary_factor_params
dans cet état et c'est comme ça jette l'erreur à cause de la première si condition.
J'ai essayé:
primary_factor_params.exists?
primary_factor_params.has_key?(:primary_factors)
....
Mais tous jeter la même erreur depuis primary_factor_params
n'existe pas. Existe-t-il un moyen de tester cela sans lancer une erreur pour les params manquants?
Oui, cela a un sens parfait, j'obturé sur le fait que je dois tester sur '' params' parce primary_factor_params' n'existerait pas dans ce cas tout – anonn023432