2013-06-27 4 views
6

Я пытаюсь сделать вызов Ajax в мой контроллерделая АЯКС вызова к контроллеру действия в рельсах

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

В моем файле JavaScript У меня есть

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

когда я инспектировать элемент и отладку и когда я нажимаю тег экспорта на своей странице. я попал в функцию, но он никогда не попадает на контроллер

Также у меня есть 2 контроллера и 2 вида. В моем другом контроллере и виде я делаю то же самое, и это работает

ответ

8

Вы проверили, что вы routes.rb есть что-то вроде:

post 'patient_record/export' 

Может быть, Rails не знает маршрут, поэтому Аякса не работает (если вы можете получить к действию от вашего браузера, это значит, что у вас есть только набор GET, вы можете проверить, что изменение типа запроса в вызове ajax)

2

Вы также нужен маршрут для export действия в файле config/routes.rb, что-то вроде

resources :patient_records do 
    member do 
    post :export 
    end 
end 

Вы можете проверить, чтобы увидеть, если это уже существует путем запуска rake routes | grep 'export'.

+1

Всего пять секунд! – NicoSantangelo

+2

... и я собирался опубликовать аналогичный комментарий по вашему ответу. :) – pjmorse