例如,假设我有一个博客,任何人都可以阅读文章、阅读评论并将任何评论标记为不适当。如何防止未登录的用户多次点击“举报评论”链接?
“标记注释”链接将直接绑定到注释模型的控制器方法。
我对会话和cookies(以及一般的Rails)的想法很陌生。我在Sessions上读过这篇文章,但恐怕我还是有点困惑。
我考虑过创建一个名为 Guest 的基类,但我想知道是否可以避免这种情况,而是使用会话或 cookie 临时数据。
提前致谢。
例如,假设我有一个博客,任何人都可以阅读文章、阅读评论并将任何评论标记为不适当。如何防止未登录的用户多次点击“举报评论”链接?
“标记注释”链接将直接绑定到注释模型的控制器方法。
我对会话和cookies(以及一般的Rails)的想法很陌生。我在Sessions上读过这篇文章,但恐怕我还是有点困惑。
我考虑过创建一个名为 Guest 的基类,但我想知道是否可以避免这种情况,而是使用会话或 cookie 临时数据。
提前致谢。
基本思想可能如下(抱歉,还没有代码):
id
每个comment
标记的评论的。将它们存储在类似哈希的结构中。flagging a comment
根据 cookie 的内容创建链接。像这样的东西:
...
= link_to('flag comment', flag_comment_path(comment.id)) if ! cookies[:flagged_comments] || ! cookies[:flagged_comments][comment.id]
标记评论时设置 cookie 哈希值(在此处使用局部变量comment
,这必须在某处设置或知道):
cookies[:flagged_comments] = Hash.new if ! cookies[:flagged_comments]
cookies[:flagged_comments][comment.id] = comment.id
我不知道代码是否可行,但想法应该很清楚。是的,只对匿名用户这样做(更依赖于 UI 和控制器功能)。
还有一件事:我认为您不应该使用会话和 cookie 来存储此信息。而且由于您必须注意到有人在 2 个不同的会话中标记评论时,请仅使用 cookie。