我收到错误:"未定义的方法' 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)
答案 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_by
和search
方法。它应该是这样的:
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)!