在rails中对控制器动作进行ajax调用

时间:2013-06-27 13:08:10

标签: javascript ruby-on-rails ajax

我正在尝试对我的控制器进行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个视图。在我的其他控制器和视图中,我做同样的事情,它的工作原理

2 个答案:

答案 0 :(得分:8)

您是否检查过routes.rb有类似的内容:

post 'patient_record/export'

也许Rails不知道路线所以ajax不起作用(如果你可以从你的浏览器开始操作,这意味着你只有GET设置,你可以检查更改类型在ajax调用中的请求)

答案 1 :(得分:2)

您还需要在export文件中执行config/routes.rb操作的路线,例如

resources :patient_records do
  member do
    post :export
  end
end

您可以通过运行rake routes | grep 'export'来检查这是否已存在。