2014-09-15 1 views
1

Je suis nouveau sur les rails, j'essaye de créer une action pour mettre à jour un enregistrement existant avec des champs obligatoires. En ce moment je suis quelque chose comme ça:Ruby on rails // Nécessite des paramètres spécifiques pour des actions spécifiques

def assembling_params 
     params.require(:device).permit(:assembling_time, :operator_assembling_name) 
end 

En ce moment il vérifier si mon appareil est présent et param seulement deux attributs de liste blanche et il fonctionne. Mais comment puis-je faire pour mettre ces 2 attributs requis par mon action? (Je ne veux pas mettre dans la validation du modèle puisque ces attributs ne sont pas présents quand je crée mon objet) Merci

Répondre

1

Vous pouvez spécifier autant d'exigences que vous le souhaitez.

Cela peut sembler laid, mais il fait le travail.

def assembling_params 
    device_params = params.require(:device).permit(:assembling_time, :operator_assembling_name) 
    device_params.require(:assembling_time) 
    device_params.require(:operator_assembling_name) 
    device_params 
end 
+0

Exactement ce que je cherchais, merci beaucoup Sergio! –

0

Utilisation dans le contrôleur approprié:

before_filter :validate_params 

et méthode:

def required_params 
[:some_attribute, :another_attribute] 
end 

def validate_params 
unless (require_params - params.keys).count.zero? 
    # do something 
end 
Questions connexes