Как я могу выполнить фоновый поиск и опубликовать результаты, не сохраняя их в 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
Если у вашей таблицы хорошие показатели, то это будет быстро.