带有ajax的Rails check_box_tag

时间:2013-02-08 20:37:12

标签: ruby-on-rails ajax checkbox

我正在尝试使用Rails 3.2.11中的复选框找出如何使用ajax传递数据。我在视图中有以下行

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

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

1 个答案:

答案 0 :(得分: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