使用Ajax返回Sunspot搜索结果

时间:2014-08-21 21:49:40

标签: jquery ruby-on-rails ajax sunspot

我的目标是让我的搜索表单在搜索后自动更新,而无需重新加载页面。我在我的rails应用程序中使用了Sunspot gem。有什么想法吗?

这是我的搜索表单search.html.haml

    - if current_user
     = link_to "Post New Job", new_job_path, class: "btn btn-primary"

    .pull-right
      =form_tag jobs_path, method:  :get, class: "form-search", id: "job-search" do
      %p
       =text_field_tag :search, params[:search], placeholder: "Job Listings", class: "input-medium search-query"
       =submit_tag "Search", :name => nil, class: "btn btn-default"

    .jobs
     =render 'jobs'

这是呈现的作业表

    %table.table.table-striped
     %thead
      %tr
       %th Title
       %th Posted By
       %th Active Until

    %tbody
     - @jobs.each do |job|
      %tr
       %td= link_to job.title, job
       %td= job.author.email
       %td= job.end_date

这是我在application.js中使用的Jquery

    $(function () {

     $('#job-search').submit(function () {
      $.get(this.action, $(this).serialize(), null, 'script');
     return false;
     });
    });

我的控制器看起来像这样

      def index
       @jobs = Job.active

       @search = @jobs.search do
        fulltext params[:search]
       end
       @jobs = @search.results
      end

即使在我输入搜索参数后将远程设置为true,也不会显示结果。我正在使用' jquery-rails'宝石。

1 个答案:

答案 0 :(得分:0)

我通过在名为search.js.erb

的文件中添加这行代码来修复它
    $('#jobs').html('<%= escape_javascript(render("jobs")) %>');