我使用will_paginate列出大量文件。我还有一个check_box,以便为进一步分析选择文件。 要在更改我在javascript后使用的页面时保存cookie中的ID:
<script src="/assets/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
var checkedIds = []
$('.checkmeplease').on("change", function(){
if($(this).is(':checked')) {
checkedIds.push($(this).val())
}
else {
checkedIds.splice(checkedIds.indexOf($(this).val()), 1);
}
$.cookie('checked_file_ids', checkedIds,{path:'/'});
});
</script>
我的复选框:
<% @files.each do |file| %>
<p><td> <%= check_box_tag "files[]", file.id,false,:class=>'checkmeplease' %></td> <%= file.name %></p>
<%end%>
它会保存ID,但是当我使用will_pagination更改页面时,保存的ID会消失。
我没有从cookie中加载以前保存的ID。我发现很少有关于如何将javascript变量传递给ruby或如何在ruby中捕获$.cookie('checkedIds')
的信息。
怎么可能呢? 非常感谢。
答案 0 :(得分:0)
你不能将 Javascript变量传递给Ruby或其他任何东西。
在这种特殊情况下,您可以在服务器(ruby)端访问您之前在客户端使用Javascript设置的“checkedIds”cookie值。在Rails中,就像cookies[:checkedIds]
在ruby方面,使用cookie的值来生成您选择的内容。