Отправка изменяющихся параметров через periodical_call_remote - PullRequest
1 голос
/ 02 мая 2010

Я использую periodically_call_remote, чтобы обновить часть страницы, которая содержит список объектов. Я посылаю вместе с URL параметр, содержащий дату create_at для самого последнего объекта в базе данных. Вызываемое действие затем получает все объекты, которые были созданы с тех пор, и отображает часть, которая отображает их в верхней части списка.

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

Есть ли способ, которым я могу заставить periodically_call_remote отправлять новый параметр каждый раз, когда он вызывается? Сейчас он просто посылает один и тот же снова и снова, что означает, что новые объекты визуализируются более одного раза.

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Хакер, говоришь? :)

Сохранить параметр в скрытом div. Вы можете получить доступ к содержимому этого div через Javascript, который periodical_call_remote будет принимать как часть опции : с .

Когда параметр изменяется, просто обновите содержимое скрытого div как часть действия вашего контроллера.

Так, например ..

<div id="date_to_check_from" style="display:none;"><%= @initial_created_at %></div>

<%= periodically_call_remote :url => path_to_controller(@normal_params), :with => "'date_to_check_from=' + $('#date_to_check_from').html()", :method => :get, :frequency => 10 %>

Это даст вам params [: date_to_check_from] в вашем контроллере. Затем обновите, как хотите, например,

render :update do |page|
   page << "$('#date_to_check_from').html('#{@new_date_to_check_from}');
end
0 голосов
/ 02 мая 2010

Можно совершить некоторую попытку взлома, но я рекомендую вам начать писать свой собственный код JavaScript для выполнения запросов AJAX. Такие помощники Rails, как periodically_call_remote, не предназначены для использования в таких сложных ситуациях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...