1

应用属性:

Rails 3.2、Mongoid、Devise、Elasticsearch

基本结构:

  • 用户有一个帖子
  • 帖子可以被其他用户看到

情况:

用户希望在一段时间内将帖子从其他用户可见中删除。

注意 最终我想扩展此功能,以便所述用户能够使其仅对某些同事可见。这样他们就可以在帖子上一起协作。

问题:我似乎想不出在 Rails 中执行此操作的好方法。我的一个想法是在 post 模型中创建一个布尔字段,这将允许我实现其中的一些,但 ACL 充其量是棘手和不稳定的。所以我正在寻求伟大的情报,这对你们中的一些人来说应该是小菜一碟。

4

1 回答 1

0

您建议的解决方案是我想到的解决方案。在 Post 模型上放置一个布尔标志private,并修改用于获取帖子的代码以排除设置了标志的帖子,除非它们属于当前用户(取决于私人帖子是否可以被其所有者在该特定上下文中查看)。

我实际上并没有与 Mongoid 合作过,但我相信这很简单Post.any_of({private: false}, {user_id: current_user.id})

如果并且当您实现您讨论的协作功能时,您需要做的就是再次更改该代码 - 获取非私有的帖子或属于给定用户组中的任何一个的帖子。

于 2013-04-28T18:42:56.393 回答