Se invio un nuovo modulo utente con errori, reindirizza alla pagina indice e quindi esegue il rendering della nuova pagina sopra di essa. Nel controller, specifica che dovrebbe solo visualizzare la nuova azione in modo che l'utente possa vedere/correggere i propri errori e inviare nuovamente. C'è qualcosa di ovvio che mi manca?Rails create action sta reindirizzando all'indice quando dovrebbe rappresentare la nuova azione
Ecco l'azione creare nel mio codice di controllo:
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
Non sei sicuro di cosa si intende per 'reindirizza alla pagina indice quindi rende la nuova pagina su in alto. Non e possibile. È stato reso nuovo o reindirizzato all'indice. Ci sono dei filtri sul controller che potrebbero interferire? Inoltre, probabilmente vorrai reindirizzare a: mostrare per il nuovo utente dall'interno se @ user.save. Altrimenti Rails tenterà di eseguire il rendering di una vista 'create', che probabilmente non hai. –
l'indirizzo va da http: // localhost: 3000/users/new a http: // localhost: 3000/users, ma in realtà mostra la nuova pagina utente. E anche se guardo il sorgente della pagina mostra la fonte dell'indice ... È davvero strano. Sì, lo ho reindirizzato per mostrarlo ora, grazie. – Matt
Ho lo stesso problema. L'hai capito? Nel mio caso, il reindirizzamento è un modo sbagliato, perché ho bisogno di conservare i dati, inseriti dall'utente e mostrare errori, che può correggere – AntonAL