Pregunta

Estoy enviando una solicitud de eliminación a través de un enlace de etiqueta de anclaje, y usando: remoto => verdadero para enviarlo a través de JS para usar jQuery. He hecho esto en otros dos casos que son idénticos a esto, sin ningún problema. Pero por alguna razón, este está causando problemas: cada vez que presento obtengo un error 406 no aceptable.

el enlace de destrucción

content_tag( :p, link_to("+#{vote.weight}", unvote_path(vote), :method => :delete, :remote => true ), :class => "chosen" )

rutas.rb

delete "/unvote" => "votes#destroy", :as => :unvote

votes_controller.rb

def destroy
    @vote = Vote.find(params[:format])
    if !current_user.owns(@vote)
      flash[:alert] = "You cannot remove votes that aren't yours!"
    end
    @idea = @vote.idea
    @vote.destroy

    respond_with @vote do |format|
      format.js
      format.html { redirect_to category_idea_path(@idea.category, @idea) }
    end
end

destruir.js.erb

$('#vote_buttons').append('<%= escape_javascript get_vote_buttons(@idea.category, current_user, @idea) %>');

Esa es exactamente la misma línea que tengo en new.js.erb, y eso funciona bien (aparte del hecho de que no devuelve exactamente lo que quiero, pero al menos se ejecuta y agrega correctamente).

Application.js

jQuery.ajaxSetup({
    'beforeSend': function(xhr) { 
        xhr.setRequestHeader("Accept", "text/javascript");
    },
    cache: false
 });

Y tengo eso en Application.js que debería estar configurando los encabezados correctamente, si entiendo bien.

Además, tenga en cuenta que el enlace realiza su funcionalidad de eliminación correctamente: cuando actualizo la página manualmente, el voto se ha eliminado. El único problema parece ser con el contenido que se devuelve por destruir.js.erb

¿Alguna idea de por qué esto está actuando de manera diferente a mis otros ejemplos de trabajo? He estado golpeando mi cabeza contra esto todo el día y no puedo resolverlo.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top