我在我的网站上使用Kaminari,点击时会有一个“加载更多”按钮来显示另外六个项目。它工作得很好,但是当我尝试添加一个排序顺序时,它不会将参数传递给link_to_next_page定义,尽管我可以在html中看到它…
关于这个问题的另一个问题是将参数传递给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
endtelevision_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发布于 2014-01-23 12:03:44
对于遇到同样问题的任何人,只需将kaminari更新到最新版本即可解决此问题
https://stackoverflow.com/questions/21024086
复制相似问题