web-dev-qa-db-fra.com

Comment utiliser params.fetch des paramètres forts

Lorsque vous utilisez Rails g scaffold kittens La fonction de paramètres forts, kitten_params Est

def kitten_params
  params.fetch(:kitten, {})
end

Je connais les paramètres forts, params.require(:kitten).permit(:name, :age) mais je ne sais pas comment utiliser la méthode fetch pour cela.

17
Andy

mais je ne sais pas comment utiliser la méthode fetch pour cela

Facile. Vous n'utilisez pas fetch pour cela. Étant donné que vous n'avez fourni aucune propriété lorsque vous avez créé l'échafaudage, Rails ne savait pas quoi mettre dans la section permit et a généré ce code, le plus judicieux pour cette situation. Lorsque vous ajoutez des champs à votre formulaire de chaton, mettez à niveau kitten_params à la "forme" des paramètres forts normaux.

params.require(:kitten).permit(:name, :age)
23
Sergio Tulentsev

Conformément à Documentation , vous devez simplement ajouter .permit à la fin, comme:

params.fetch(:kitten, {}).permit(:name, :age)
8
Fernando Oléa