使一个字段可供太阳黑子订购

时间:2013-11-27 23:19:47

标签: ruby-on-rails solr sunspot

资产有一个状态列表和一个数字。我的目标是使用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以将其转换为字符串,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

我很确定太阳黑子无法通过您索引为文本的字段进行排序。但你可以用字符串订购。

而不是:

text :statuses do
  statuses.map(&:name)
end

尝试:

string :statuses do
  statuses.map(&:name)
end