2

我试图弄清楚如何使用 Rails 3.2.11 中的复选框通过 ajax 传递数据。我认为以下行

<%= check_box_tag(
        "institution_ids_#{inst.name.gsub(" ", "")}",
          inst.id,
          false,
        data: {
          remote: true,
          institution_id: inst.id}) %>

当我更改复选框的状态时,我可以看到控制器被正确调用(特别是控制器的 index 方法,这是我想要的,因为那是我所在的视图),但是,我似乎无法从控制器上的 params 哈希访问机构 ID 变量。有人可以解释一下我如何使用 ajax 在复选框中将数据从视图传递到控制器。我认为 remote: true 函数会使用我设置的附加参数(它没有)正确调用控制器(确实如此)。

4

1 回答 1

5

你为什么不使用 jquery 来Ajax拨打电话。

<%= check_box_tag( "institution_ids_#{inst.name.gsub(" ", "")}", inst.id, false %>

<script>
     $('#checkbox_id').change(function(){
        $.get('controller/action?inst_id='+$(this).val(), function(data,status){
            if(status == 'success'){
              alert(data)
             }
        })
     })
   </script>

在控制器中:

def action
   inst_id = params[:inst_id]
   #do something
   render :text => "success" 
end
于 2013-02-08T20:55:20.760 回答