1

例如,假设我有一个博客,任何人都可以阅读文章、阅读评论并将任何评论标记为不适当。如何防止未登录的用户多次点击“举报评论”链接?

“标记注释”链接将直接绑定到注释模型的控制器方法。

我对会话和cookies(以及一般的Rails)的想法很陌生。我在Sessions上读过这篇文章,但恐怕我还是有点困惑。

我考虑过创建一个名为 Guest 的基类,但我想知道是否可以避免这种情况,而是使用会话或 cookie 临时数据。

提前致谢。

4

1 回答 1

2

基本思想可能如下(抱歉,还没有代码):

  1. 定义应将哪些信息存储在会话和/或 cookie 中。我认为它应该是id每个comment标记的评论的。将它们存储在类似哈希的结构中。
  2. flagging a comment根据 cookie 的内容创建链接。像这样的东西:

    ...
    = link_to('flag comment', flag_comment_path(comment.id)) if ! cookies[:flagged_comments] || ! cookies[:flagged_comments][comment.id]
    
  3. 标记评论时设置 cookie 哈希值(在此处使用局部变量comment,这必须在某处设置或知道):

    cookies[:flagged_comments] = Hash.new if ! cookies[:flagged_comments]
    cookies[:flagged_comments][comment.id] = comment.id
    

我不知道代码是否可行,但想法应该很清楚。是的,只对匿名用户这样做(更依赖于 UI 和控制器功能)。

还有一件事:我认为您不应该使用会话和 cookie 来存储此信息。而且由于您必须注意到有人在 2 个不同的会话中标记评论时,请仅使用 cookie。

于 2011-10-08T19:08:10.973 回答