before_filter в Rails и ajax-запросах - PullRequest
0 голосов
/ 18 августа 2010

У меня есть приложение, основанное только на вызовах ajax, но мне нужно постоянно проверять уменьшающееся значение в переменной сеанса. Я создал before_filter с redirect_to :action => :action_name по какой-то причине, это не работает для меня. Я вижу в журнале Filter chain halted as [:method_name] rendered_or_redirected., но на самом деле ничего не происходит. Кто-нибудь знает в чем проблема? Я хотел сделать код СУХИМ с использованием фильтров, но похоже, что он не обрабатывает запросы ajax: (

Код довольно прост (на самом деле это игра) вот метод, который висит на before_filter

def check_winner
  if session[:game].user.cards.length == 0 || session[:game].pc.cards.length == 0
    flash[:notice] = "The end"

    redirect_to :action => "win"
  end    
end

session [: game] содержит несколько объектов, которые я инициализирую в начале игры. Я никогда не использовал rails-фильтры с ajax, но он всегда работал с обычными http-запросами. Пользователь запускает действия везде через link_to_remote Я пытался отобразить обновление страницы ajax в методе filter, но он просто выдает мне ошибку doble рендеринга: (

1 Ответ

0 голосов
/ 18 августа 2010

Я не думаю, что вы хотите перенаправить в before_filter. Вы используете это для перенаправления на действие, специфичное для AJAX? Лучшая альтернатива - использовать блок responseds_to для ответа на конкретные запросы или просто получить специфичный для ajax URL, который вызывается.

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