Rails和ajax请求中的before_filter

时间:2010-08-17 20:39:03

标签: ruby-on-rails

我的应用程序仅基于ajax调用,但我需要不断检查会话变量中的减少值。由于某种原因,我创建了一个带有redirect_to :action => :action_name的before_filter,这对我不起作用。我在log Filter chain halted as [:method_name] rendered_or_redirected.中看到了,但事实上没有任何反应。 有谁知道这是什么问题?我想使用过滤器来创建代码DRY,但看起来它没有处理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]保留了几个我在游戏开始时初始化的对象。我从未使用带有ajax的rails过滤器,但它始终使用普通的http请求 用户通过link_to_remote在任何地方触发操作我试图在过滤器方法上呈现ajax页面更新,但它只是抛出了我的渲染错误:(

1 个答案:

答案 0 :(得分:0)

我认为您不想在before_filter中重定向您是否使用它重定向到特定于AJAX的操作?更好的选择是使用responds_to块来响应特定请求,或者只是使用一个特定于ajax的url来调用。