5

我想在我的应用程序控制器中使用一种简单的方法,该方法要求所有用户在继续访问站点的任何部分之前都必须登录。我正在使用设计进行身份验证。

我试过:

class ApplicationController < ActionController::Base
  ...
  unless user_signed_in?
    redirect_to login_path
  end
  ...
end

这成功地重定向了所有人,但问题是它还阻止了创建新用户会话所需的发布请求。

所以我的问题是,除了登录视图和登录的发布请求之外,您将如何阻止所有请求?

4

1 回答 1

9

使用设计这很容易。您只需要添加before_filter :authenticate_user!到您的 ApplicationController。

这在 Devise wiki 中都有详细说明 - https://github.com/plataformatec/devise

请注意,在 Rails 4.2+ 中,before_action :authenticate_user!首选。

于 2011-07-13T15:49:39.453 回答