【问题标题】:Possible to order search results using current_user可以使用 current_user 对搜索结果进行排序
【发布时间】:2011-08-27 09:19:36
【问题描述】:

我正在尝试使用使用 Products 和 User has input 的公式对搜索结果进行排序。换句话说,我有一个使用 Products 和 current_user 数据的方程。我希望能够按照从等式中得到的数字对搜索结果进行排序。我什至从这个开始就很迷茫。有没有人做过类似的事情或对如何最好地处理排序/顺序有任何想法?据我了解,“顺序”通常用于对 SQL 数据库中的实际列进行排序,而不是一种方法。

我最初认为我需要将 current_user 传递给模型。我知道这不是最佳实践,但 Sunspot 允许您在模型中创建自定义字段,然后对这些字段进行排序。不幸的是,这不起作用,因为 sunspot 需要索引它搜索和排序的字段。

我目前正在使用 Sunspot,即使需要进行修改,我也希望继续使用它。我也在使用分页。

【问题讨论】:

    标签: ruby ruby-on-rails-3 sunspot sunspot-rails


    【解决方案1】:

    您无法在 SQL 中计算复杂的方程式。您仅限于简单的计算。

    可能的解决方案:

    • 根据您获得的结果数量,可能只需要 使用 ruby​​ 排序方法。
    • 计算方程的结果并将它们存储在一个新的 列或表

    您的问题可能与“匹配”有关。

    【讨论】:

    • SQL 中的“简单”或“复杂”等式由什么构成?我在语言参考中没有看到任何这样的区别。
    • 嗯——你能用你的数据库服务器可用的函数和存储在表列中的值来表达你的方程吗?如果没有,您要么必须在应用程序中执行此操作,要么在数据库中维护某种索引,以便它可以按缓存的公式结果进行排序。
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 2017-10-27
    • 2014-02-21
    • 1970-01-01
    • 2013-04-28
    • 2016-05-21
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多