2016-01-12 3 views
0

У меня есть таблица активных рабочих мест, которая показывает все активные задания. Я пытаюсь добавить функции поиска в таблицу, но мои данные таблицы не отображаются в таблицу. Вот код, который у меня есть.Ruby On Rails - таблица обновлений с запросом на получение JQuery

активы/JavaScripts/jobs.js

$(document).ready(function(){ 
    $("#search").keypress(function(){ 
     $.ajax({ 
      type : 'get', 
      url : "/jobs/"+$('#search').val()+"/search",  
      dataType : 'json', 
      async : true, 
      success : function(data) { 

      } 
      }); 
    }); 
}); 

Мой взгляд active_jobs.html.erb оказывает частичное называется _job.html.erb

<tr> 
    <td><%= job.id %></td> 
    <td><%= job.customer.name %></td> 
    <td><%= job.customer.email %></td> 
    <td><%= job.customer.phone_one %></td> 
    <td><%= job.status %></td> 
</tr> 

мой взгляд active_jobs.html.erb

<h1>Jobs</h1> 
<input id="search" type="text" name="Search"><br> 
<table id="jobs-table" class="table table-bordered"> 
    <tr> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Phone</th> 
     <th>Email</th> 
     <th>Status</th> 
    </tr> 
    <tbody> 
     <%= render @jobs %> 
    </tbody> 

Здесь пока мой show.js.erb для визуализации ответа на таблицу (не обновляет таблицу правильно делает ничего.)

$("<%= escape_javascript(render @jobs) %>").appendTo("#jobs-table"); 

Мой контроллер имеет метод поиска

def search 
    @jobs = Job.where(id: params[:keyword]) 
    respond_to do |format| 
     format.html {redirect_to customers_url} 
     format.js {render :action => "show"} 
    end 
end 

Вот моя консоль

Started GET "/jobs/2/search" for 10.0.2.2 at 2016-01-12 01:42:15 +0000 
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 

Processing by JobsController#search as JSON 
Parameters: {"keyword"=>"2"} 
Job Load (1.0ms) SELECT "jobs".* FROM "jobs" WHERE "jobs"."id" = ? [["id", 2]] 
Customer Load (0.9ms) SELECT "customers".* FROM "customers" WHERE "customers"."id" = ? LIMIT 1 [["id", 2]] 
Rendered jobs/_job.html.erb (2.1ms) 
Rendered jobs/show.js.erb (24.1ms) 
Completed 200 OK in 89ms (Views: 86.6ms | ActiveRecord: 1.9ms) 

Все исходные данные (на странице загрузки/обновления) нагрузок просто отлично, но когда я начинаю искать для идентификатора по моей просьбе ПОЛУЧИТЬ таблица Никогда не обновления или изменения в любом случае. Если вы можете помочь в решении этой проблемы, я бы ее очень признателен. Заранее спасибо!

ответ

1

Вы говорите, что вызов ajax ожидает json в качестве возврата, но вы фактически возвращаете скрипт JS. Попробуйте:

$.ajax({ 
    type: 'get', 
    url: '/jobs/' + $('#search').val() + '/search', 
    dataType: 'script', 
    async: true 
}); 
0

Выполните следующие действия:

#config/routes.rb 
resources :jobs do 
    get "search(/:keyword)", action: :show, on: :collection #-> url.com/jobs/search?keyword=query || url.com/jobs/search/:keyword 
end 

#app/assets/javascripts/application.js 
$(document).on("keypress", "#search", function(e) { 
    $.get("jobs/search", {keyword: $('#search').val()}); 
}); 

#app/controllers/jobs_controller.rb 
class JobsController < ApplicationController 
    def show 
     if params[:keyword] 
     @jobs = Job.where id: params[:keyword] 
     else 
     @job = Job.find params[:id] 
     end 

     respond_to do |format| 
      format.js 
      format.html {redirect_to customers_url} 
     end 
    end 
end 

#app/views/jobs/show.js.erb 
("<%=j render @jobs %>").appendTo("#jobs-table"); 
Смежные вопросы