Ruby 可以使用当前用户订购搜索结果

Ruby 可以使用当前用户订购搜索结果,ruby,ruby-on-rails-3,sunspot,sunspot-rails,Ruby,Ruby On Rails 3,Sunspot,Sunspot Rails,我试图使用一个使用产品和用户输入的等式来排序搜索结果。换句话说,我有一个等式,它使用了来自产品和当前用户的数据。我希望能够按照从等式中得到的数字对搜索结果进行排序。即使是从这个开始,我也很迷茫。有没有人做过类似的事情,或者对如何最好地处理分拣/订单有什么想法?据我所知,“order”通常用于对SQL数据库中的实际列进行排序,而不是一个方法 我最初认为我需要将当前用户传递到模型中。我知道这不是最佳实践,但Sunspot允许您在模型中创建自定义字段,然后对这些字段进行排序。不幸的是,这不起作用,因为

我试图使用一个使用产品和用户输入的等式来排序搜索结果。换句话说,我有一个等式,它使用了来自产品和当前用户的数据。我希望能够按照从等式中得到的数字对搜索结果进行排序。即使是从这个开始,我也很迷茫。有没有人做过类似的事情,或者对如何最好地处理分拣/订单有什么想法?据我所知,“order”通常用于对SQL数据库中的实际列进行排序,而不是一个方法

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


我目前正在使用太阳黑子,即使需要修改,我也希望继续使用它。我也在使用分页

不能在SQL中计算复杂的方程式。您只能进行简单的计算

可能的解决办法:

  • 根据您得到的结果的多少,可能只需要 使用ruby排序方法
  • 计算方程式的结果并将其存储在新的 列或表

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

在SQL中,什么构成了“简单”或“复杂”等式?我在语言引用中没有看到任何这样的区别。那么,您能使用数据库服务器可用的函数和存储在表列中的值来表示您的等式吗?如果没有,则必须在应用程序中执行此操作,或者在数据库中维护某种索引,以便它可以根据缓存的公式结果进行排序。