Domanda

Sto inviando una richiesta di eliminazione tramite un collegamento a tag di ancoraggio e usando: remote => True per inviarlo tramite JS per utilizzare jQuery. L'ho fatto in altri due casi che sono identici a questo, senza alcun problema. Ma per qualche motivo, questo sta causando problemi, ogni volta che mi sottopongo ricevo un errore non accettabile 406.

il collegamento di distruzione

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

percorsi.rb

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

voti_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

Destroy.js.erb

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

Questa è esattamente la stessa linea che ho new.js.erb, e questo funziona bene (a parte il fatto che non restituisce esattamente quello che voglio, ma almeno esegue e aggiunge correttamente).

applicazione.js

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

E l'ho preso dentro applicazione.js che dovrebbe essere impostato correttamente le intestazioni, se capisco bene.

Inoltre, si prega di notare che il collegamento esegue correttamente la sua funzionalità di eliminazione: quando aggiorno manualmente la pagina, il voto è stato eliminato. L'unico problema sembra essere con il contenuto restituito da Destroy.js.erb

Qualche idea sul perché si comporta in modo diverso con gli altri miei esempi di lavoro? Ho battuto la testa contro questo tutto il giorno e non riesco a capirlo.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top