Javascript 有没有一种简单的方法可以使用jquery无限页面gem和无限滚动的搜索条件?

Javascript 有没有一种简单的方法可以使用jquery无限页面gem和无限滚动的搜索条件?,javascript,jquery,ruby-on-rails,gem,infinite-scroll,Javascript,Jquery,Ruby On Rails,Gem,Infinite Scroll,我正在使用gem和kaminarigem来无限滚动我的索引操作。我让它工作,但我也希望有一个搜索功能,按名称排序,等等,我也得到了工作,但代码真的很混乱,真的'黑客',因为我必须使用jquery的目标href和附加搜索词的url结尾 index.js.erb $("<%=j render(partial: 'drawings', object: @drawings) %>") .appendTo($(".gallery-page")); <% if @drawings.l

我正在使用gem和kaminarigem来无限滚动我的索引操作。我让它工作,但我也希望有一个搜索功能,按名称排序,等等,我也得到了工作,但代码真的很混乱,真的'黑客',因为我必须使用jquery的目标href和附加搜索词的url结尾

index.js.erb

$("<%=j render(partial: 'drawings', object: @drawings) %>")
  .appendTo($(".gallery-page"));

<% if @drawings.last_page? %>
  $('.pagination').html("That's all, folks!");
<% else %>
  $('.pagination')
  .html("<%=j link_to_next_page(@drawings, 'Next Page', :remote => true) %>");
  <% if @search.present? %>
    var hrefEl = $('.pagination a').attr('href');
    $('.pagination a').attr('href', hrefEl + "&search=" + "<%= @search %>");
  <% end %>
  <% if @order.present? %>
    var hrefEl = $('.pagination a').attr('href');
    $('.pagination a').attr('href', hrefEl + "&order=" + "<%= @order %>");
  <% end %>
<% end %>
def index
  if params[:search].blank? && params[:order].blank?
    @drawings = Drawing.order('created_at DESC').page(params[:page])
  else
    if params[:search].blank?
      @search = "%"
    else
      @search = params[:search].gsub(/[^a-zA-Z]/, "")
    end
    if params[:order] == "Newest" || params[:order].blank?
      @order = "DESC"
    else
      @order = "ASC"
    end
    @drawings = Drawing.joins(:picture).where("name LIKE ?", @search).order("created_at #{@order}").page(params[:page])
  end
  @search = nil if @search == "%"
  @order = params[:order]
end
我必须创建两个使用jquery附加到href末尾的部分

图纸\u controller.rb

$("<%=j render(partial: 'drawings', object: @drawings) %>")
  .appendTo($(".gallery-page"));

<% if @drawings.last_page? %>
  $('.pagination').html("That's all, folks!");
<% else %>
  $('.pagination')
  .html("<%=j link_to_next_page(@drawings, 'Next Page', :remote => true) %>");
  <% if @search.present? %>
    var hrefEl = $('.pagination a').attr('href');
    $('.pagination a').attr('href', hrefEl + "&search=" + "<%= @search %>");
  <% end %>
  <% if @order.present? %>
    var hrefEl = $('.pagination a').attr('href');
    $('.pagination a').attr('href', hrefEl + "&order=" + "<%= @order %>");
  <% end %>
<% end %>
def index
  if params[:search].blank? && params[:order].blank?
    @drawings = Drawing.order('created_at DESC').page(params[:page])
  else
    if params[:search].blank?
      @search = "%"
    else
      @search = params[:search].gsub(/[^a-zA-Z]/, "")
    end
    if params[:order] == "Newest" || params[:order].blank?
      @order = "DESC"
    else
      @order = "ASC"
    end
    @drawings = Drawing.joins(:picture).where("name LIKE ?", @search).order("created_at #{@order}").page(params[:page])
  end
  @search = nil if @search == "%"
  @order = params[:order]
end
我的索引操作是一堆条件语句

\u draws.html.haml

%div
  = form_tag("/drawings", method: 'get', id: 'search-form') do
    = select_tag :search, options_for_select(name_list, params[:search]), prompt: "Search for..."
    = select_tag :order, options_for_select(order_list, params[:order]), prompt: "Order by..."
    = submit_tag "Search", id: 'search-button', class: 'btn btn-primary btn-lg'

.gallery
  .gallery-page
    = render 'drawings', object: @drawings

.pagination
  = link_to_next_page(@drawings, 'Next Page', remote: true)

= render partial: 'pagination_search.js', object: @search unless @search.nil?
= render partial: 'pagination_order.js', object: @order unless @order.nil?
- @drawings.each do |drawing|
  = link_to drawing_path(drawing) do
    %img{src: drawing.image.thumb.url, class: 'gallery-image'}

所以我的问题是,有没有一种更干净、更优雅的方式来使用jquery infite pages gem进行无限滚动和搜索参数?或者这个gem不支持这样的东西吗?还有其他gem可以做到这一点吗?

在搜索和订购时,能否向我们展示您的控制器和生成的下一页链接的HTML?这些应该由kaminari@PabloGonz阿拉莱萨尔巴增加了指数行动。生成的下一页链接的HTML与搜索和排序时使用的
index.HTML.haml
相同。