带有ajax的Rails checkbox_tag

Jon*_*Jon 2 ajax checkbox ruby-on-rails

我试图找出如何使用Rails 3.2.11中的复选框使用ajax传递数据.我认为我有以下几行

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

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

Rah*_*ali 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>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

def action
   inst_id = params[:inst_id]
   #do something
   render :text => "success" 
end
Run Code Online (Sandbox Code Playgroud)

  • 尝试使用这样:`:data => {:remote => true,:url => {:action => action_name,:institution_id => inst.id}}` (4认同)
  • 所以上面没有用,但这确实有数据:{remote:true,url:url_for(action :: index,institution_id:inst.id),institution_id:inst.id} (2认同)