Как я могу выполнить фоновый поиск и опубликовать результаты, не сохраняя их в Rails 4?

Я постараюсь сделать свой вопрос простым. По сути, у меня есть две модели в отношении HMABTM (имеет много и принадлежит многим). То, что я хотел бы сделать, это позволить пользователю найти записи, отвечающие критериям (на выходе, вероятно, будет несколько записей из второй модели).

Проблема, с которой я сталкиваюсь:

База данных довольно большая (~800 миллионов записей), но количество запросов / запросов не так уж и велико. Сохранение результатов поиска не является для меня оптимальным решением, поэтому я хотел бы, чтобы результаты отображались через jquery (или js в целом) из фонового задания, а НЕ сохранялись в базе данных.

Что я подумала о:

С помощью sidekiqхотя я не очень знаком с фоновыми работами в рельсах. Я просто не понимаю, как бы я мог запросить результаты. Некоторые люди отметили, что использование Ajax было бы лучшей идеей, но стоит ли зацикливаться на такой задаче, выполняющейся на Ajax, и будет ли это работать?

1 ответ

Лучший способ использовать ajax Запросы. С jQuery это будет так:

function getData( value ) {
    $.ajax( {  
        url: "/path_to/your_action",  
        data: {  
            variable: value  
        },  
        dataType: "json",
        complete: function( data ) {  
            // process your data  
        }  
    } );  
}  

И обработать запрос в Rails:

def your_action  
    render :json => ModelName.where( :column_name => params[ :variable ] )  
end  

Если у вашей таблицы хорошие показатели, то это будет быстро.

Другие вопросы по тегам