Dans la plupart des exemples que je vois, je remarque que dans le contrôleur, la nouvelle méthode a simplement:formes avec des variables Validating
@object = Object.new
Dans la méthode de création, vous verrez quelque chose comme:
@object = Object.find(params[:object])
if @object.save
flash[:success] = "This object has been added."
redirect_to objects_path
else
render :action => 'new'
end
Cela fonctionne très bien, mais la seule chose que je tombe (assez courant), est lorsque les tests échouent en utilisant certaines méthodes intégrées d'aide:
validates_presence_of: valeur
le "render: action => 'new' sera appelé. Alors les rails contourne le contrôleur et va directement à l'action pour de nouveau, ce qui tente de rendre le formulaire.
Ce contournement du contrôleur me tue, car parfois je charge des valeurs dans le formulaire en utilisant des valeurs que j'ai définies dans mon contrôleur.
Je finirai par obtenir des erreurs à cause de valeurs nulles, car les rails ont contourné le contrôleur et les valeurs n'ont jamais été définies lors du chargement de "render: action => 'new'".
Ma question: Quelle est la meilleure façon de rediriger un formulaire (ou les meilleures pratiques en général) lors de la validation d'un formulaire auquel sont assignées des variables définies dans le contrôleur? Je veux éviter ces erreurs de valeur nulle, donc je pense que je fais juste mal pour commencer.
Ah ah! La réponse me regardait droit dans les yeux. J'utilise avant tout les filtres pour construire d'autres choses, et je n'ai jamais cassé ce qui pourrait aussi être utilisé pour les formulaires. Merci! :) – Steve