Rails Jquery/Ajax更改事件未在Rails 3.2上执行

Rails Jquery/Ajax更改事件未在Rails 3.2上执行,jquery,ruby-on-rails-3.2,Jquery,Ruby On Rails 3.2,更新 大家好,我是Ajax和jquery新手,请帮助。我就是看不出这个片段有什么问题。基本上在我看来,当用户从下拉选择框中选择一门课程时,应该加载一批属于该课程的学生。目的是为这批学生创建一个考试。 以下是我的create_考试视图中下拉列表的代码: <%= select_tag :course_id, options_for_select( Course.find(:all,:select=>"code,id").collect{|c| [c.code,c.id]}), :dat

更新 大家好,我是Ajax和jquery新手,请帮助。我就是看不出这个片段有什么问题。基本上在我看来,当用户从下拉选择框中选择一门课程时,应该加载一批属于该课程的学生。目的是为这批学生创建一个考试。 以下是我的create_考试视图中下拉列表的代码:

<%= select_tag :course_id, 
options_for_select(
Course.find(:all,:select=>"code,id").collect{|c| [c.code,c.id]}),
:data => { :remote => true, :url => url_for(:controller => "exam", 
                                     :action => "update_batch",
                                     :filter =>"course")} %>
结束

结束

我使用以下javasscript创建了文件“update_batch.js.erb”: $update\u batch.html

My application.js文件包含jquery,它有望触发select box的onchange事件:

// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .

$(function($) {
$("#course_id").change(function() {
$.ajax({
url: '<%=url_for :controller => 'exam',:action => 'update_batch' %>',
type: 'GET',
data: 'course_id=' + this.value,
dataType: 'script'
  })
});
})

正在填充下拉选择框,当我选择一个课程时,应该呈现“更新批处理”部分。从下面显示的我的终端输出中,可以清楚地看到正在渲染部分: ExamController处理将_批更新为JS 参数:{filter=>course,course\u id=>1} 批次加载0.2ms选择批次。*从批次中,batches.is_deleted='f'和batches.is_active='t'和batches.course_id为空 呈现考试/\u更新\u batch.html.erb 0.6ms 呈现检查/更新\u batch.js.erb 2.1ms 在6ms视图中完成200 OK:4.5ms |活动记录:0.2ms

问题是网页上没有显示此部分内容。我的问题是:我的jquery代码有什么问题吗?这里有必要吗?为什么网页上没有显示部分内容? _update_batch partial如下所示:

<% @batch.each do |batch| %>
  <%= link_to batch.course.full_name, batch_exam_groups_path(batch) %> : <%= batch.full_name %> 
<% end %>
Am位于Rails 3.2.8上,jquery Rails已正确安装。我哪里会出错?
Thanx我们将非常感谢您的帮助。

我认为您不能使用带有选项的data remote进行选择,也许我错了。当我需要在select中提交值时,我会执行以下操作:

$("#select_id").change(function() {
  var id = $(this).val();

  $.ajax({
    url: "/url_here",
    type: "GET",
    data: {"course_id": id},
    dataType: "choose_the_dataType"
    success: function(data) {
      //do something here 
    }
  });
});

谢谢你的快速回复。也许为了让你们了解情况,我编辑了这个问题。
$("#select_id").change(function() {
  var id = $(this).val();

  $.ajax({
    url: "/url_here",
    type: "GET",
    data: {"course_id": id},
    dataType: "choose_the_dataType"
    success: function(data) {
      //do something here 
    }
  });
});