2014-01-09 119 views
1

我在我的網站上使用Kaminari,點擊「加載更多」按鈕顯示另外六個項目。它工作的很好,但是當我嘗試添加一個排序順序時,它並沒有將params傳遞給link_to_next_page def雖然我可以在html中看到它...Kaminari分頁與篩選器

另一個問題就是說傳遞params到link_to_next_page但它沒有什麼區別。

示例:當我嘗試按最低價格>最高價格進行排序時,前六個項目進行排序,但在「加載更多」時,排序順序是隨機的。

任何人都可以在這裏建議?

謝謝。

一些代碼...

index.html.erb

<div id="offers"> 
    <%= render :partial => @television_offers %> 
    </div> 

    <%= link_to_next_page @television_offers, 'Load More', :remote => true, :id=>"load_more_link", :params => params %> </div> 

index.js.erb的

$('#offers').append("<%= escape_javascript(render :partial => @television_offers)%>"); 
$('#load_more_link').replaceWith("<%= escape_javascript(link_to_next_page(@television_offers, 'Load More', :remote => true, :id=>'load_more_link', :params => params))%>"); 

application_helper.rb

def link_to_next_page(scope, name, options = {}, &block) 
    param_name = options.delete(:param_name) || Kaminari.config.param_name 
    link_to_unless scope.last_page?, name, {param_name => (scope.current_page + 1)}, options.merge(:rel => 'next') do 
    block.call if block 
    end 
end 

television_offers_controller.rb

def index 

    @television_offers = TelevisionOffer.page(params[:page]).per(6) 

    if params[:filter] == "large_screens" 
    @television_offers = @television_offers.large_size 
    elsif params[:filter] == "small_screens" 
    @television_offers = @television_offers.small_size 
    elsif params[:filter] == "price" 

    if params[:order] == "asc" 
    @television_offers = @television_offers.asc(:offer_price) 
    else 
    @television_offers = @television_offers.desc(:offer_price) 
    end 

    else 
    @television_offers = @television_offers.best 
    end 
end 

回答

0

對於任何人遇到同樣的問題,這是通過簡單地更新雷到最新版本解決