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