2011-10-28 28 views
7

Gần đây tôi đã quyết định chuyển động cơ lập chỉ mục của tôi từ nhân sư sang solr. Sau khi sử dụng kaminari với think_sphinx, tôi quyết định thử sử dụng phân trang chung trong sunspot https://github.com/sunspot/sunspot/pull/64/https://github.com/sunspot/sunspot/pull/67, để sử dụng tránh chuyển sang will_paginate.Phân trang điểm ảnh với kaminari

tìm kiếm của tôi được xử lý như sau:

@search = Address.search do 
    fulltext params[:search] 
    with(:updated_at).greater_than(1.week.ago) 
    order_by :updated_at, :desc 
    paginate :page => params[:page], :per_page => 7 
end 

Quan điểm của tôi là không thay đổi so với những gì tôi đã có khi tôi đã sử dụng thinking_sphinx:

<%= render :partial => 'address' %> 
<%= paginate @addresses %> 

Vấn đề của tôi là sau khi thay đổi tôi liên tục gặp lỗi sau khi cố thực hiện tìm kiếm:

undefined method `current_page' for []:Array 

Tôi đang sử dụng phiên bản mới nhất của vết đen mặt trời, để kiến ​​thức của tôi nên cho phép tôi sử dụng Kaminari:

Using sunspot (1.3.0.rc3) from git://github.com/sunspot/sunspot.git (at master) 
Using sunspot_rails (1.3.0.rc3) from git://github.com/sunspot/sunspot.git (at master) 

này đã làm việc một cách hoàn hảo với thiết lập thinking_sphinx cũ của tôi, vì vậy những gì tôi làm sai?

+0

Vâng, tôi đã mệt mỏi của cố gắng để làm cho nó hoạt động và chuyển sang will_paginate, hoạt động tuyệt vời hiện nay. – maecro

+2

có một viên đá kaminari vết đen mặt trời làm cho kaminari và vết đen chơi độc đáo cùng nhau [https://github.com/richardiux/sunspot_with_kaminari](https://github.com/richardiux/sunspot_with_kaminari) hoạt động hoàn toàn tốt đẹp đối với chúng tôi. –

+0

Tôi đã nhìn thấy viên đá quý đó nhưng bị bỏ qua vào lúc đó vì dường như không có nhiều hoạt động ở đó. Có lẽ tôi đã đánh giá nó một cách khắc nghiệt, tôi sẽ xem xét lại nó. Chúc mừng cho đề xuất. – maecro

Trả lời

13

Đây là cách tôi đã sử dụng và nó hoạt động tuyệt vời

@search = Sunspot.search(Listing) do 
     if params[:category].present? 
     with :category_id, params[:category] 
     end 
     if params[:subcategory].present? 
     with :subcategory_id, params[:subcategory] 
     end 
     if params[:q].present? 
     keywords params[:q] do 
      fields :title, :description 
     end 
     end 
     paginate :page => params[:page], :per_page => SEARCH_RESULT_PER_PAGE 
    end 

Và trong lần xem tôi có điều này

<%= paginate @search.hits %> 
+0

bạn đã cứu tôi rất nhiều thời gian! cảm ơn! – 23tux

Các vấn đề liên quan