Si je soumets un nouveau formulaire utilisateur avec des erreurs, il redirige vers la page d'index, puis rend la nouvelle page par-dessus. Dans le contrôleur, je précise qu'il devrait juste rendre la nouvelle action afin que l'utilisateur puisse voir/corriger ses erreurs et resoumettre. Y a-t-il quelque chose d'évident qui me manque?Rails create action redirige vers index quand il devrait rendre la nouvelle action
Voici le créer une action dans mon code de commande:
def create
@user = User.new(params[:user])
@user.role = "owner"
if @user.save
flash[:notice] = "Registration successful!"
else
flash.now[:notice] = "You have errors!"
render :new
end
end
Je ne sais pas ce que vous entendez par « redirige vers la page d'index rend alors la nouvelle page en haut. Ce n'est pas possible. Il est soit rendu neuf ou redirigé vers l'index. Y a-t-il des filtres sur votre contrôleur qui peuvent interférer? Aussi, vous voudrez probablement rediriger vers: show pour le nouvel utilisateur depuis l'intérieur si @ user.save. Sinon, Rails tentera de rendre une vue 'create', que vous n'avez probablement pas. –
l'adresse va de http: // localhost: 3000/users/new à http: // localhost: 3000/users, mais il montre réellement la nouvelle page de l'utilisateur. Et même si je regarde la source de la page, elle montre la source de l'index ... C'est vraiment bizarre. Ouais je l'ai rediriger pour montrer maintenant, merci. – Matt
J'ai le même problème. Avez-vous compris? Dans mon cas, la redirection d'un mauvais sens, car je dois conserver les données, entrées par l'utilisateur et montrer les erreurs, qu'il peut corriger – AntonAL