Я пытаюсь сохранить строку запроса для вызова API, чтобы я мог использовать его снова для следующих 30 или 60 или более результатов. Когда я использовал кеширование в Rails, запрос передается между различными компьютерами в Интернете. Это не то, что я хотел сделать. Он должен быть только для одного пользователя, а затем этого одного пользователя, который не вошел в систему или что-то может получить следующие результаты, нажав на ссылку.кэширование рельсов или локальное сохранение параметров запроса?
Так что я попробовал javascript вместо того, чтобы захватить входные данные из текстового поля, а затем сохранить его в sessionStorage. Он работает один раз, а затем я не знаю, как изменить этот sessionStorage снова.
Код приведен ниже. Любые идеи о том, как правильно хранить строки запросов в рельсах для следующего вызова api?
Модель 1
def self.search_results(search_term_web, params_web)
Rails.cache.write 'searchterm', search_term_web
results = good.search(search_term_web)
end
Модель 2
def self.search_results_again(params_web)
results = good.search(Rails.cache.write 'searchterm')
end
контроллер
def search
if params[:q]
@params_web = {:count =>30, :offset => 0}
params[:bing] = @params_web
@q = User.search_results(params[:q], params[:good])
if @q
# render json: @q
render partial: "cognitives/q"
else
render status: :not_found, nothing: true
end
end
end
def search30
if Rails.cache.read 'searchterm'
@params_web = {:count =>30, :offset => 30}
params[:bing] = @params_web
@q = User.search_results_again(params[:good])
if @q
# render json: @q
render partial: "cognitives/q"
else
render status: :not_found, nothing: true
end
end
end
Другой подход с использованием Javascript
var addsearchterm = function(){
localStorage.begriff = document.getElementById('web- text').value;
document.getElementById('begriff').innerHTML = localStorage.begriff;
};
addsearchterm();
Благодарим вас за идею. Но это не сработало в моем коде. В конце концов, этот трюк сделал. request_ip = request.ip сеанс [request_ip] = params [: q] – Jutta