0

, wenn ich ein Formular einreichen, wenn es einige Fehler hat man so etwas tun kann:einen anderen Controller-Aktion machen und füllen Form

def create 
    @proposal = Proposal.new(proposal_params) 
    if @proposal.save 
    redirect_to @proposal 
    else 
    render :new 
    end 
end 

aber meine Form

wie auf einen anderen Controller Aktion einreicht kann i haben die gleichen Ergebnisse rendering die: neue Aktion der anderen Controller die ID des vorherigen zu übergeben, um die Form Fehler zu zeigen und das Formular mit dem Geben von Text.

Ursache, wenn ich tun:

def create 
    @proposal = Proposal.new(proposal_params) 
    if @proposal.save 
    redirect_to @proposal 
    else 
    redirect_to other_controller_path(@user) 
    end 
end 

die Validierungen Fehler wird nicht angezeigt

+0

Was meinen Sie mit "Übergabe der ID des vorherigen ...", wenn die vorherige Angebotsinstanz '@ proposal' aufgrund von Fehlern nicht erstellt wurde, wird keine ID generiert. Am besten ist es, wenn Sie '@ proposal' einfach übergeben und in der gerenderten Form des anderen Controllers verwenden. – SteveTurczyn

Antwort

1

Pass @ proposal.errors auf die Umleitung in aufblitzen:

redirect_to other_controller_path(@user), notice: @proposal.errors oder etwas in diese Richtung, je wie Sie Ihre Fehler in Ihrer App eingerichtet haben.

Verwandte Themen