我有一个存储用户创建的文档的应用程序。这些文档有作者、创建日期。作者可以有角色。此外,给定的文档可能会被标记为关键字。数据库中有大约 16K 文档,用户可能希望查看这些信息的任意组合作为限制的文档。例如,查看给定作者的所有文档,或在给定时间窗口内发布的文档,或来自该角色的作者的所有文档等(以及这些文档的任意组合)。
是否有推荐的最佳方法来实现这一点?一般来说,我已经在 params 哈希中传递了所需的条件,然后使用复杂的 if ... elsif.... else.. 将传递的条件直接解码为不同的 Model.find 调用。或者,我将使用类似的 if 序列来构造正确的 SQL 条件短语,然后使用单个 find 调用。
这两个似乎都是 hack,应该有更好的方法来使用命名范围,但我无法找到一种干净的方法来处理排列。