Tengo un formulario con control remoto => true. Y en este momento mi regulador parece:redireccionar después exitosa forma ajax
# POST /items
# POST /items.json
def create
@item = @store.items.build(params[:item])
respond_to do |format|
if @item.save
format.html { redirect_to edit_admin_item_path(@item), :flash => {:success => "#{@item.name} was successfully created."} }
format.js { render :js => "window.location.href = ('#{edit_admin_item_path(@item)}');"}
format.json { render json: @item, status: :created, location: @item }
else
format.html { render action: "new" }
format.js { render :partial => 'fail_create.js.erb', :locals => { :ajax_errors => @item.errors.full_messages } }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
que funciona, pero se siente muy torpe. Tampoco me permite usar un aviso de flash, que es un momento lamentable.
Idealmente me siento que debería ser capaz de utilizar simplemente "format.js {...} redirect_to o cheque contra las cabeceras de petición y redirect_to. Joder!
no estoy seguro de cuál es la mejor solución es . Cualquier consejo sería súper increíble, gracias de antemano!
- PD - Sé que esto se ha preguntado un poco antes, pero fue en vano: How to redirect after a successful AJAX form submission. Parece que hay muchas preguntas similares flotando, pero no hay soluciones reales.
Quizás me falta algo, pero ¿no es el objetivo de la presentación de formularios AJAX que * no * requiere una carga de página? Si vas a redirigir, ¿no podrías hacer un envío a la antigua? – jimw
El ajax se usa para verificar la validación y los registros duplicados. Luego actualiza el con un mensaje de error. Cuando el formulario es correcto, quiero redireccionar al edit_path. Que tiene carga de imágenes y otras cosas pasando. – Galaxy
Correcto, pero puede hacer la validación de formulario JS sin el envío de AJAX. La única razón por la que sé enviar a través de AJAX es evitar una carga de página. – jimw