Si vous utilisez scaffold
dans Rails, l'action de création ressemble à ceci:
Lorsque l'enregistrement est réussi, redirect_to
est utilisé, et lorsque la transition de page échoue, render
est utilisé.
J'expliquerai cette différence.
user_cocntroller.rb
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
redirect_to exécute une requête HTTP. render affiche juste la vue (= l'URL ne change pas)
Lorsque la mise à jour des données est réussie, une requête HTTP est exécutée pour passer à une autre page. Ce faisant, les mêmes données ne seront pas enregistrées lors du rechargement.
Si l'enregistrement échoue, affichez simplement la vue avec un message d'erreur. Évitez d'augmenter inutilement les demandes. Puisque les données n'ont pas été enregistrées, il n'y a pas de problème même si elles sont rechargées.
Recommended Posts