如何使用javascript从Rails访问用户ID:Rails,Devise,Page Caching

时间:2011-09-21 17:41:21

标签: javascript ruby-on-rails devise page-caching

我为不同的用户提供各种图片库。在大多数情况下,可以缓存整个页面。但是我也想要以下功能:

  1. 如果用户登录并访问自己的图库,则用户 可以看到覆盖每个图像的“x”删除链接。

  2. 如果用户已登录并在其他人的图库中,则他们可以     看到叠加“拇指向上”,“拇指朝下”投票给每个图像。

  3. 如果用户未登录,则可以查看叠加层     表决,         但是点击它们会弹出一个登录对话框。

  4. 我提出的方法是:

    • 在服务器端erb模板中,我将始终生成投票 链接和删除链接无论登录状态如何,但我会有 它们默认用css隐藏。
    • 然后我会用js揭示它们 取决于用户的登录状态。

    问题是......在缓存页面上确定用户登录状态的最佳方法是什么?我可以在缓存页面上使用cookie吗?

    如果我在缓存页面上有一段javascript来检查类似于此的cookie值,它会工作吗?

      if ($.cookie("user_id") == 23) { //if user is owner of this gallery...
         //reveal delete links, hide voting links
      }
    

    我讨厌构建一些特殊的东西来设置那个cookie ......应该已经存在某种类型的DEVISE cookie了吗?我该如何访问它?

1 个答案:

答案 0 :(得分:0)

使用$.cookie("user_id")设置Cookie,使用$.cookie("user_id", "23")设置Cookie。但是,您应该注意未经身份验证的滥用行为:应拒绝每个需要身份验证的无凭证请求,否则登录的目的将被取消。

如果您想检查您网站上的可用Cookie,请使用此书签:

javascript:alert(document.cookie)