2013-02-08 42 views
2

我想弄清楚如何使用Rails 3.2.11中的複選框傳遞數據與Ajax。我有我的看法如下行Rails與ajax checkbox_tag

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

當我改變複選框的狀態,我可以看到控制器正確獲取調用(特別是控制器的索引方法,這就是我想要的那是我看到的視圖),但是,我似乎無法從控制器上的params散列訪問institution_id變量。有人可以解釋我如何使用ajax將數據從視圖傳遞給控制器​​內的複選框。我認爲remote:true函數會正確地調用控制器(這是確實的)和我設置的其他參數(它不會)。

回答

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 
+0

我想我可以做這樣的事情。我有很多複選框,並且我認爲如果我可以做任何內聯操作,這將更具可讀性。這僅僅是不可能的嗎? – Jon 2013-02-08 20:58:21

+4

嘗試使用像這樣:':data => {:remote => true,:url => {:action => action_name,:institution_id => inst.id}}' – codeit 2013-02-08 21:07:03

+2

因此,上述不起作用,但是這did data:{remote:true,url:url_for(action::index,institution_id:inst.id),institution_id:inst.id} – Jon 2013-02-08 21:16:25