在我的网站上,版主可以标记垃圾评论。当这些评论被标记时,他们会被隔离,所以他们不会再出现在常规视图中,尽管他们仍然可以在管理控制台中看到。此刻,我排除他们从常规视图,像这样:导轨3:默认排除结果
@comments = Comment.where(:flagged => false)
我在每一个在它的意见,其中有许多控制器做到这一点。我觉得有一个更清晰的方式来处理Rails中的这个问题。也许在评论模型的某个地方,我可以指定在查询评论时只检索那些没有标记的评论。如果是这样,那是怎么做的?即使这是不可能的,是否有其他方式来干这个代码?
这是正确的想法,但你的代码是不正确的。它应该是:'default_scope where(:flagged => false)'。你从哪里得到“无风险”? – Mischa
在这种情况下,有4个视图会使用默认范围和1个视图来排除它。似乎违约是更有效的方法,除非有什么我不知道。 – nullnullnull
你是对的。我编辑了我的答案。 –