从ajax路由重定向用户

时间:2011-02-24 14:46:54

标签: ruby-on-rails-3

例如,我是通过resources :companies路由生成的:

/company/123/
/company/edit/123
/company/new

所有这些路由都用于Ajax功能。

现在,如果用户直接在浏览器中打开,他/她将会看到所有原始JSON数据。

如何将这些请求(例如theese)重定向到站点根目录(http://site.com/)?

我认为,我们可以使用x-requested-with HTTP标头来检测ajax / direct请求,但我不知道如何在Rails中处理它。

1 个答案:

答案 0 :(得分:0)

  before_filter :check_ajax

  def check_ajax
    if (request.env['HTTP_X_REQUESTED_WITH'] !~ /XMLHttpRequest/i)
      redirect_to '/nahuy/' # your url
    end
  end

重定向所有非Ajax请求'/nahuy/':)