太阳黑子solr“没有为名为'C2'的用户配置字段”

时间:2017-05-19 13:55:26

标签: ruby-on-rails ruby-on-rails-4 solr sunspot

我想在我的太阳黑子搜索中添加排序。没有订购搜索工作完美。 这是我的搜索方法:

def search
    @search = User.search do
      keywords params[:q]
      paginate page: params[:page]
      order_by(:C2, :desc)
    end
    @users = @search.results
    respond_to do |format|
      format.html { render :action => "index" }
    end
  end

我的用户模型

class User < ActiveRecord::Base
  searchable do
    text :C1
    text :C2
  end
end

所以我得到了

  

没有为名为“C2”的用户配置字段

在order_by行

我认为MAYBE导致的问题是C2是文本,而不是字符串,所以我接下来做了hack:

class User < ActiveRecord::Base
  searchable do
    text :C1
    text :C2
    string  :sort_title do
      C2.downcase
    end
  end
end

为了在控制器中添加order_by (:sort_title, :desc),但由于某些原因,当我重新编制索引时,我得到:

  

NameError:未初始化的常量User :: C2

我做错了什么?

1 个答案:

答案 0 :(得分:1)

试试这个:

searchable do
  text :C1
  text :C2
  string :sort_title do |user|
    user.C2.downcase
  end
end

然后尝试重新索引,它应该顺利...