Wenn Sie "Gerüst" in Rails verwenden, sieht die Aktion "Erstellen" folgendermaßen aus: Wenn das Speichern erfolgreich ist, wird "redirect_to" verwendet, und wenn der Seitenübergang fehlschlägt, wird "render" verwendet. Ich werde diesen Unterschied erklären.
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 führt eine HTTP-Anforderung aus. Beim Rendern wird nur die Ansicht angezeigt (= URL ändert sich nicht)
Wenn die Datenaktualisierung erfolgreich ist, wird eine HTTP-Anforderung ausgeführt, um auf eine andere Seite zu wechseln. Auf diese Weise werden dieselben Daten nicht durch erneutes Laden registriert.
Wenn das Speichern fehlschlägt, zeigen Sie die Ansicht einfach mit einer Fehlermeldung an. Vermeiden Sie es, Anfragen unnötig zu erhöhen. Da die Daten nicht registriert wurden, gibt es kein Problem, auch wenn sie neu geladen werden.
Recommended Posts