2016-08-03 14 views
0

Wie kann ich nicht umleiten zu einer anderen Ansicht nach dem Erstellen oder Aktualisieren eines Formulars mit remote: true in Rails?Schienen 4: Stop Umleitung nach erstellen oder aktualisieren Formular

//route 
resources :pictures 


// action 
def create 
    @picture = Picture.new(picture_params) 

    respond_to do |format| 
    if @picture.save 
     #format.html { redirect_to @picture, notice: 'Picture was successfully created.' } 
     #format.json { render :show, status: :created, location: @picture } 
     format.js 
    else 
     format.html { render :new } 
     #format.json { render json: @picture.errors, status: :unprocessable_entity } 
    end 
    end 
end 


// view 
<%= form_for(@picture, remote: true, :authenticity_token => true, html: { multipart: true }) do |f| %> 

    [...] 

<%= f.submit %> 

Wenn ich nur die Umleitung Funktion entfernen erhalte ich die Fehlermeldung:

ActionController::UnknownFormat 

error image

+0

können Sie Ihren Action-Code hier posten? – titan

+0

ist deine '.js'-Datei in deiner Ansicht' create.js.erb'? – MMachinegun

+0

Ja. Aber es ist leer –

Antwort

1

Dies ist auf Antwortformat

respond_to do |format| 
    if @data.save 
    format.js 
    #you need to remove format.html form here just keep format.js 
    else 
    format.html { render :new} 
    end 
end 
+0

Nicht funktionieren. Es kann anymay mit dem Fehler umleiten: ActionController :: UnknownFormat –

+0

Sie müssen angeben, remote: => true und erstellen Sie eine Datei im Ordner namens create.js.erb –

+0

Ich tat. Schau den Code oben an. Ich aktualisiere die Frage ... –

0

Sie versuchen, 2 Optionen zu verwenden (remote: true, multipart: true), die nicht zusammen funktionieren können. Wenn Sie AJAX für das Hochladen von Dateien verwenden möchten, sollten Sie dieses GEM versuchen remotipart