RoR:form.select + onchange没有将参数中的正确值传递给控制器

我在Ruby on Rails表单中有一个select菜单,定义如下:

"Menu1_Id", :class => "Menu1_Class"} %> 

我正在使用事件处理程序在选择一个选项时触发控制器操作,并且我想向其传递所选选项的值

  $(function(){ $('.Menu1_Class').bind('change', function(){ alert($(this).val()); $.ajax('#{:controller => "TestsController", :action => "show"}?param_one='+$(this).val()); }); });  

编辑:这是为我工作的js代码,感谢Robin的回答(注意我正在使用它来执行动作“get_results”而不是原来的“show”):

  $(function(){ $('.menu_class').bind('change', function(){ $.ajax({ url: "", data: { param_one: $(this).val() } }); }); });  

在我的控制器中

 # GET /tests/1 # GET /tests/1.json def show @test = Test.find(params[:id]) if params[:param_one].present? @blah=params[:param_one] puts "show : @blah = " + @blah.to_s + "\n" end respond_to do |format| format.html # show.html.erb format.json { render :json => @test } end end 

这样,警报消息包含正确的值(value1或value2),但param_one不存在,因此puts不会为“param_one”返回任何内容,而我希望在那里看到“value1”或“value2”。

有人可以指点我在哪里做错了吗?

谢谢

将您的JavaScript更改为以下内容: