ruby-on-rails - 在 Rails 中使用 will_paginate 和 AJAX 实时搜索以及 jQuery

标签 ruby-on-rails ajax jquery will-paginate

我正在使用 will_paginate 成功地翻阅记录。我还通过 jQuery 使用 AJAX 实时搜索来更新我的结果 div。到目前为止没有问题。我遇到的问题是在尝试对这些实时搜索结果进行分页时。我只是得到“页面正在加载...”,没有 div 更新。我错过了一些基本的东西吗?我相信我可能还需要通过 jQuery 以某种方式绑定(bind)分页链接的点击事件。

# index.html.erb

  <form id="searchform" accept-charset="utf-8" method="get" action="/search">
    Search: <input id="search" name="search" type="text" autocomplete="off" title="Search location, company, description..." />      
   <%= image_tag("spinner.gif", :id => "spinner", :style =>"display: none;" ) %>  
  </form>

# JobsController#search

def search
    if params[:search].nil?
      @jobs = Job.paginate :page => params[:page], :order => "created_at desc"
    elsif params[:search] and request.xhr?
      @jobs = Job.search params[:search], params[:page]
    end
    render :partial => "jobs", :layout => false, :locals => { :jobs => @jobs }
  end

# Job#search

def self.search(search, page)
    logger.debug "Job.paginate #{search}, #{page}"
    paginate :per_page => @@per_page, :page => page,
             :conditions => ["description LIKE ? or title LIKE ? or company LIKE ?", 
               "%#{search}%", "%#{search}%", "%#{search}%"], 
               :order => 'created_at DESC'
  end

# search.js

$(document).ready(function(){

  $("#search").keyup(function() {
    $("#spinner").show(); // show the spinner
    var form = $(this).parents("form"); // grab the form wrapping the search bar.
    var url = form.attr("action"); // grab the URL from the form's action value.
    var formData = form.serialize(); // grab the data in the form
    $.get(url, formData, function(html) { // perform an AJAX get, the trailing function is what happens on successful get.
      $("#spinner").hide(); // hide the spinner
      $("#jobs").html(html); // replace the "results" div with the result of action taken
    });
  });

});

最佳答案

如果微调器从未隐藏,则很可能对 /search 的请求失败 - 检查您的 log/development.log。如果未提供,您可能希望默认 :page 参数:

page = params[:page] || 1

关于ruby-on-rails - 在 Rails 中使用 will_paginate 和 AJAX 实时搜索以及 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530561/

相关文章:

jquery - Python、Postgres 和 Ajax/Jquery 使用数据库值实时更新页面

jquery - JSON 格式问题

ruby-on-rails - 安装rails错误:Failed to build gem native extension

ruby-on-rails - 为什么我在创建 Controller /模型时出错?

ruby-on-rails - Rails 5.2 加密凭据未保存

jquery - 使用 JQuery ajax post 使用 WCF/REST 服务

jquery - mouseenter 和 mouseleave 在 jquery 中不起作用

c# - 模型在 MVC4 中没有 ListBoxFor 的值

javascript - Jquery 切换不隐藏/显示特定元素

ruby-on-rails - 使用 SSL 的 Rails 应用程序上的 NGinx 重定向循环