我正在尝试使用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函数会使用我设置的附加参数(它没有)正确地调用控制器(确实如此)。
答案 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