控制器操作
def search_leads
@search = Sunspot.search(Lead) do |searcher|
searcher.all do
fulltext params[:email], :fields => :email
fulltext params[:name], :fields => [:first_name, :last_name]
end
searcher.paginate(:page => params[:page], :per_page => 10)
end
@leads = @search.results
respond_to do |format|
if (params[:email].present? || params[:name].present? ) and (current_user.credits > 0)
format.html { redirect_to search_leads_path }
format.js { }
else
format.html { redirect_to new_search_path }
end
end
end
search_leads.js.erb
$(".search_results").html("<%= escape_javascript(render :partial => 'search/search_results') %>");
$('#paginator').html('<%= escape_javascript(paginate(@search.hits, :remote => true).to_s) %>');
HTML
<div id="paginator">
<%= paginate @search.hits, remote: true %>
</div>
分页按钮出现在结果中,但我无法滚动页面。点击下一页时,没有电话转到solr。
答案 0 :(得分:0)
一切正常,问题是remote: true
paginate
,只需更新如下
从remote: true
移除paginate
,它将位于partial
,例如search_results.html.erb
<%= paginate @search.hits %>
并且主文件例如search_leads.html.erb
添加此脚本
<script type="text/javascript">
$(document).ready(function() {
$('.pagination > a').attr('data-remote', 'true');
});
</script>
.pagination > a
是选择器,如果这不起作用,那么只需从浏览器控制台找到选择器然后使用它。
我认为此行不需要,请删除此
$('#paginator').html('<%= escape_javascript(paginate(@search.hits, :remote => true).to_s) %>');
并在search_leads.js.erb
此脚本上也可以
$(".search_results").html("<%= escape_javascript(render('search/search_results')) %>");