2

我有一个Product模型,它在数据库中有列namedescription

我也有一个Product.search_results_for(query)query"Green Apple".

我需要返回一个ActiveRecord::Relation排序的结果,哪个是最好的。目前,我正在search_result_value为每个产品设置一个。search_result_value不是数据库中的列,我不希望它是。

所以本质上,我有一个ActiveRecord::RelationProducts需要订购的东西,search_result_value而不需要将它更改为一个数组,它是一个不存储在数据库中的实例变量。我怎样才能做到这一点?

像这样的东西:

Product.order(:search_result_value)
4

1 回答 1

6

如果您没有将值放在列中或search_result_value用纯 SQL 表达逻辑,那么您必须将所有产品加载到内存中,然后使用 Ruby 对它们进行排序sort_by

Product.all.to_a.sort_by(&:search_result_value)
于 2013-08-18T05:15:01.200 回答