太阳黑子solr分页不与kaminari合作

时间:2018-03-30 01:54:01

标签: ruby-on-rails pagination kaminari sunspot-solr

控制器操作

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。

1 个答案:

答案 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')) %>");