【问题标题】:Best way to handle multiple possible queries conditions on an index page在索引页面上处理多个可能的查询条件的最佳方法
【发布时间】:2009-08-12 22:09:28
【问题描述】:

我有一个存储用户创建的文档的应用程序。这些文档有作者、创建日期。作者可以有角色。此外,给定的文档可能会被标记为关键字。数据库中有大约 16K 文档,用户可能希望查看这些信息的任意组合作为限制的文档。例如,查看给定作者的所有文档,或在给定时间窗口发布的文档,或来自该角色的作者的所有文档,等等(以及这些的任意组合)。

是否有推荐的最佳实施方式?一般来说,我已经在 params 哈希中传递了所需的条件,然后使用复杂的 if ... elsif.... else.. 将传递的条件直接解码为不同的 Model.find 调用。或者,我将使用类似的 if 序列来构造正确的 SQL 条件短语,然后使用单个 find 调用。

这两个看起来都像是 hack,应该有更好的方法来使用命名范围,但我想不出一个干净的方法来处理排列。

【问题讨论】:

    标签: ruby-on-rails named-scope


    【解决方案1】:

    查看 Ben Johnson 的 SearchLogic——它是一个可以动态生成命名范围的 gem。

    http://github.com/binarylogic/searchlogic/tree/master

    【讨论】:

      【解决方案2】:

      你只需要一行代码Model.find。不是使用条件逻辑来创建多个 find 调用,而是使用条件逻辑来填充传递给 find 调用的 :conditions 哈希。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-07
        • 2021-08-18
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多