太阳黑子的未定义方法order_by

时间:2014-04-29 06:33:45

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

我收到错误:"未定义的方法' order_by'"但我认为order_by方法是为Sunspot构建的,有人可以解释为什么我会收到此错误以及如何修复它?

我的模型中的可搜索块:

searchable do
  text :title, :street_address, :apartment_number, :city, :state, :zip

  float :price
  float :bathrooms
  float :bedrooms
  float :average_overall_rating
end

我的搜索控制器方法:

def search
  @search = Apartment.search do |query|
    fulltext params[:search]
    order_by(:average_overall_rating, :asc)
    with_price(query)

3 个答案:

答案 0 :(得分:0)

您只能访问太阳黑子搜索DSL中的order_by方法。请在控制器中执行此操作:

def search
  @results = Sunspot.search(YourModel) do
    fulltext(params[:search])
    order_by(:average_overall_rating, :asc)
  end
end

答案 1 :(得分:0)

必须在模型的fulltext块中使用order_bysearch方法。它应该是这样的:

def search
  @models = Model.search do   # Replace 'Model' by your model class
    fulltext params[:search]
    order_by(:average_overall_rating, :asc)
  end
end

答案 2 :(得分:0)

嘿,我实际上是凭直觉找到了解决方案:

我需要调用的是query.order_by(:average_overall_rating,:asc)!