2013-06-27 12 views
6

Sto cercando di fare una chiamata AJAX al mio controllerfare una chiamata AJAX al controllore azione rotaie

class PatientRecordController < ApplicationController 
    def export 
    .... 
    end 
end 

Nel mio file javascript ho

$(document).ready(function(){ 
    freezeTopRow($('#dataTable')); 
    $("#export").click(function(){ 
     $.ajax({url: "patient_record/export", type: "POST"}); 
    }); 
}); 

quando ho Inspect Element ed eseguire il debug e quando clicco sul tag export sulla mia pagina. Ho colpito la funzione, ma non arriva mai al controller

Inoltre ho 2 controller e 2 visualizzazioni. Nel mio altro controllore e vista io faccio la stessa cosa e funziona

risposta

8

Avete verificato che routes.rb hai qualcosa di simile:

post 'patient_record/export' 

Forse Rails non conosce il percorso in modo che l'ajax non funziona (se è possibile ottenere l'azione dal browser significa che hai solo un set GET, puoi controllare che cambiando il tipo di richiesta nella chiamata ajax)

2

è necessario anche un itinerario per l'azione export nel file config/routes.rb, qualcosa di simile

resources :patient_records do 
    member do 
    post :export 
    end 
end 

È possibile controllare per vedere se questo esiste già eseguendo rake routes | grep 'export'.

+1

A soli cinque secondi! – NicoSantangelo

+2

... e stavo per pubblicare un commento simile sulla tua risposta. :) – pjmorse

Problemi correlati