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