如何在Rails应用程序中的Comment模型上实现“主持人关注标志”功能?

时间:2009-10-30 18:51:31

标签: ruby-on-rails

我的应用程序中有一个评论模型,但遇到了很多有问题的帖子,我必须手动删除。

我想要做的是添加“主持人关注的标记”功能,以便该应用的用户能够从视图中删除评论,而无需查看应用中的所有内容。

我认为在评论被标记三次后,我会自动将其从视图中删除,然后当我有机会查看这些帖子时,我将决定是允许它们还是永久删除它们。< / p>

我遇到的问题是如何实现这一点。

我是否应该有一个单独的表来记录所有已标记的项目?

或者我应该在“注释”表中添加“标记计数”字段,以跟踪注释被标记的次数?

一个单独的表格可以让我跟踪有关标记操作的详细信息 - 谁正在标记,他们正在标记哪些IP,等等。这就是我倾向于的。

但也许已经存在这样做的宝石或插件?

2 个答案:

答案 0 :(得分:1)

我不知道任何插件。我喜欢你倾向于的解决方案。

如果您想在为其创建三个标记后隐藏评论,则需要跟踪创建它们的人员,以便人们只标记一次。

我创建了一个flag资源(可以包含您的用户可以分配给特定评论的任何类型的标记),然后创建一个flagging资源,将flags与{{1}连接起来并保存有关负责标记的实体的信息(可以是用户或由IP代表的用户)。

每个comments将有许多comment

添加三个标记后,您可以使用状态机将注释的状态更改为“to_be_revised”或类似内容。状态机(aasm_state_machine或现在直接包含在Rails中的机器)也将为具有相同状态的注释组提供named_scopes。

修订后,您可以再次将状态设置为“已发布”并删除所有标记或“取消发布”,并将其永久隐藏。

答案 1 :(得分:0)

也许acts-as-flaggable插件可行。