Es ist eine Weile her, seit diese Frage gestellt wurde - aber ich habe nur eine Weile, dies herauszufinden & nicht zu viel Hilfe zu diesem Online finden konnte, so:
Die Lösung ist, Erstellen Sie .js.erb-Dateien - eine für Erfolg und eine für Fehler.
def create
@foo = Foo.new(params[:foo])
if @foo.save
respond_to do |format|
format.html { redirect_to root_path }
format.js { render :action => "success"} #rails now looks for success.js.erb
end
else
respond_to do |format|
format.html { render :action => 'new'}
format.js { render :action => "failure"} #rails now looks for failure.js.erb
end
end
end
end
Wenn scheint, dass, wenn Sie keinen Dateinamen angeben, Schienen für create.js.erb in beiden Fällen aussehen wird (weil format.js von erstellen genannt). Dies ist bei Erfolgs-/Fehlersituationen nicht sehr hilfreich, da Sie für jedes Szenario ein anderes Verhalten wünschen - überschreiben Sie also die Dateinamen durch das Attribut: action.