代码之家  ›  专栏  ›  技术社区  ›  unsorted

rails—有效地选择一个id不在已知集合中的对象

  •  2
  • unsorted  · 技术社区  · 14 年前

    moderate 页面上,他随机发了一个帖子,说他还没有主持,问帖子是否应该出现。

    Post , User Moderation . A 有一个 post_id 和一个 user_id Post.all 如果不存在 节制

    最有效的方法是什么?我 获取该用户的所有调节,然后使用 map 获取用户主持的所有帖子,然后作为(伪代码)查询帖子数据库 Post.find(:conditions => "id != [list of posts already moderated])

    另外,以某种方式将其缓存是个好主意吗?也许通过获取所有未被审核的帖子,并将其保存在某个地方,然后在将来调用 适度的

    谢谢你的帮助!

    2 回复  |  直到 14 年前
        1
  •  2
  •   Eimantas    14 年前

    就在我头上:

    Post.all(:joins => 'LEFT OUTER JOIN moderations m ON p.id=m.post_id AND m.user_id != #{id}')
    
        2
  •  0
  •   Zaz Volodymyr Null    14 年前

    我是Ruby的新手,我想我应该试着写一个程序来做这个,最终的结果在我看来是相当糟糕的,但是我想我还是把相关的部分贴在这里:

    posts - moderations.select{|x| x.user_id == current_user}.collect{|x| x.post_id}