0

我正在使用 will_paginate 来列出大量文件。我还有一个复选框,以便为进一步分析选择文件。在更改我使用以下 javascript 的页面时将 id 保存在 cookie 中:

 <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>&nbsp;&nbsp;<%= file.name %></p> 
 <%end%>

它保存了 ID,但是当我使用 will_pagination 更改页面时,保存的 ID 消失了。我没有从 cookie 中加载之前保存的 ID。我几乎没有找到关于如何将 javascript 变量传递给 ruby​​ 或如何$.cookie('checkedIds')在 ruby​​ 中捕获 a 的信息。

怎么可能呢?非常感谢。

4

1 回答 1

0

您不能Javascript 变量传递给 Ruby 或其他任何东西。

在这种特殊情况下,您可以在服务器(ruby)端访问您之前在客户端使用 Javascript 设置的“checkedIds”cookie 值。在 Rails 中,这就像cookies[:checkedIds]

在 ruby​​ 方面,使用 cookie 的值来生成您选择的内容。

于 2013-08-06T12:38:55.653 回答