Ha pasado un tiempo desde que esta pregunta fue publicada - pero yo acabamos de pasar un rato calcular esto & no pudo encontrar mucha ayuda en esta línea, por lo que:
la solución es crear archivos .js.erb, uno para el éxito y otro para el fracaso.
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
Si parece que si no se especifica un nombre de archivo, rieles buscarán create.js.erb en ambos casos (porque format.js se llama de crear). Esto no es bueno en el caso de situaciones de éxito/error porque desea un comportamiento diferente para cada escenario, por lo tanto, anule los nombres de archivo a través del atributo: acción.