资产有一个状态列表和一个数字。我的目标是使用sunspot添加可搜索性并对状态和数字进行排序。在我的资产模型中,我有:
class Asset < ActiveRecord::Base
⋮
searchable do
text :statuses do
statuses.map(&:name)
end
⋮
然后在我的资产控制器中我有:
Asset.search do
⋮
order_by :statuses, :desc
end
当我尝试运行它时出现错误:
Sunspot::UnrecognizedFieldError in SearchController#assets
No field configured for Asset with name 'statuses'
资产模型的searchable
部分中的定义是配置字段,对吗?
我还尝试在状态列表中添加join
以将其转换为字符串,但这没有帮助。
答案 0 :(得分:1)
我很确定太阳黑子无法通过您索引为文本的字段进行排序。但你可以用字符串订购。
而不是:
text :statuses do
statuses.map(&:name)
end
尝试:
string :statuses do
statuses.map(&:name)
end